С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
 Аватар для СтуденT
6 / 6 / 1
Регистрация: 18.12.2011
Сообщений: 126

Использование var

17.01.2013, 15:54. Показов 9848. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Хочу создать список типа стринг вот такой конструкцией
C#
1
var images = new List<string>();
, но ругается на var что не найдено имя или пространство имен на сборку, Linq подключал. В чем ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2013, 15:54
Ответы с готовыми решениями:

Использование Var в TRY
Использую заголовок секции объявления переменных(var) users вместе с операторами try/catch Так вот поимки сообщения должен выполняться...

Использование var или уход от строгой типизации
Алоха! Стал программить на C# совсем недавно, на компе стоит VS 2010 + Resharper. Так вот статистический анализатор кода в Resharper...

Заменить var
Помогите заменить вар, а то я код нашел,а училка бесится когда var видит. public static bool Foo (string a,string b) { ...

19
Просто хороший человек
 Аватар для sannee
392 / 182 / 24
Регистрация: 26.04.2011
Сообщений: 434
17.01.2013, 15:56
Цитата Сообщение от СтуденT Посмотреть сообщение
var images = new List<string>();
Ну, скорее всего, дело в том, что вы пытаетесь объявить это глобально
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.01.2013, 16:05
или в том что версия студии не позволяет: ключевое слово var появилось в C# 3.0
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.01.2013, 00:14
Цитата Сообщение от СтуденT Посмотреть сообщение
не найдено имя или пространство имен на сборку
var может использоваться только в методах, но никак не при объявлении переменных класса.
0
 Аватар для CSharp
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
18.01.2013, 21:00
var - лучшие использовать в счетчиках циклов или когда надо создать временную переименую. Я таких принципов придерживаюсь
C#
1
for (var i = 0; i<10; i++)
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,663
Записей в блоге: 14
19.01.2013, 22:24
Допишите
C#
1
using System.Collections.Generic;
Цитата Сообщение от CSharp Посмотреть сообщение
var - лучшие использовать в счетчиках циклов или когда надо создать временную переименую. Я таких принципов придерживаюсь
Интересно. Я предпочитаю пользоваться словом var, как рекомендуют именитые авторы (такие как Эндрю Троэлсен), в случае длинного имени типа:
C#
1
var args = new UnobservedTaskExceptionEventArgs(...);
и так понятно, что args является переменной типа UnobservedTaskExceptionEventArgs. И в случае совершенной необходимости - анонимных типов:
C#
1
2
3
4
5
var person = new {
    Name = "Steve",
    Age = 50
};
Console.WriteLine(person.GetType()); // <>f__AnonymousType0`2[System.String,System.Int32]
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 22:33
tezaurismosis, решарпер вообще заменяет все типы на var. Не согласен с этим, но уже привык. Только типы из 3-4 букв использую напрямую (int,char, иногда double)
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
19.01.2013, 22:37
Psilon, Угу) Мне он раз посоветовал поменять,а когда поменял - обругал меня за то что,мол не понятная переменная у меня и студия уже не компилит этот код.

Вывод - использовать var в случае сокращение записи и при возможности догадаться о типе в правой части кода.
= new "VAR"

p.s. Пока не берем во внимание дин.прогрм.,анонимы и т.д.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 22:40
Noob.net, ну а в самом деле, примитивных типов, которые активно используются, совсем немного: int, char, bool, double.
string уже часто на var заменяю.
Ну а во всех остальных случаях это не примитивные типы, а классы, и о типе легко догадаться по правой части
C#
1
var r = new Random();
трудности только при длинных записях.
C#
1
var graphics = e.Graphics.FromImage("123.bmp");
но тут достаточно правильно назвать переменную.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,663
Записей в блоге: 14
19.01.2013, 22:46
Psilon, тогда смысл НЕ использовать var остаётся только в случаях типа
C#
1
IEnumerable<string> list = new List<string>();
если использовать с умом, то действительно можно полностью уйти на var.
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
19.01.2013, 22:51
tezaurismosis, Не забывайте о правилах хорошего тона,о правилах форматирования кода в каждой компании.
Ваш код будут читать,по-этому может даже придется писать без var.
Некоторые даже this. всегда прописывают.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 22:53
Цитата Сообщение от Noob.net Посмотреть сообщение
Некоторые даже this. всегда прописывают.
Это вообще очень печально, такой код читать - убиться можно
0
24 / 24 / 1
Регистрация: 16.05.2012
Сообщений: 285
19.01.2013, 22:57
интересно все это. А чем var может быть полезнее сразу определенных типов? Когда лучше его использовать, и как оно может влиять на производительность?
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
19.01.2013, 22:58
Psilon, Нет. Это спасает при замене библиотек. Что б методы не путать.
А вдруг я злой кодер напишу такой же метод а среда перепутает его или еще чего..

Добавлено через 20 секунд
Цитата Сообщение от WWWinplex Посмотреть сообщение
и как оно может влиять на производительность?
никак
0
24 / 24 / 1
Регистрация: 16.05.2012
Сообщений: 285
19.01.2013, 22:59
плохо...

я this любил писать... по мне, красивее смотрится... но так и не понял, когда оно может быть реально полезно(ну кроме расширений)

ILSPY при декомпиляции везде this. ставит.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 22:59
Noob.net, да ну? Например? Единственный случай, когда локальная переменная имеет имя класса, во всех остальных случаях - идиотизм
C#
1
2
3
4
5
6
7
8
class A
{
  private int x;
  public A(int x)
  {
    this.x = x;
  }
}
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,663
Записей в блоге: 14
19.01.2013, 23:06
Цитата Сообщение от Noob.net Посмотреть сообщение
Не забывайте о правилах хорошего тона,о правилах форматирования кода в каждой компании.
Я с вами согласен, но так как моя компания нигде не зарегистрирована и состоит только из меня ( ), то правила хорошего тона слегка стираются

Да, и повторюсь, тогда уж лучше придерживаться мнения именитых программистов.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 23:10
tezaurismosis, сколько людей - столько мнений. Сюда можно вставить слово "знаменитый" по обе стороны тире - ничего от этого не изменится
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,663
Записей в блоге: 14
19.01.2013, 23:23
Psilon, я отношусь к этому по-разному. Некоторые вещи - лично моё видение, например явовская расстановка скобок, которую многие ненавидят
C#
1
2
3
int Method(int n) {
    // ...
}
А некоторые - прочёл хорошую книгу и увидел там совет (когда ставить var, а когда нет, к примеру) и подумал, а почему-бы и нет? А потом, своим привычкам трудно изменить, да и не особо хочется.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 23:46
Цитата Сообщение от tezaurismosis Посмотреть сообщение
А потом, своим привычкам трудно изменить, да и не особо хочется.
Да. Проблема в одном: у всех привычки разные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2013, 23:46
Помогаю со студенческими работами здесь

Var в параметрах метода
Приветствую! Подскажите, можно ли сделать что - то вроде этого: public void NameMethod(var NameParameter) { //Какой - то код; ...

Чем отличаются var и dynamic?
Чем отличаются Var и dynamic? И там и там вроде бы компилятор сам определяет, к какому типу отнести переменную.

Преобразование var в List<string>
Доброго времени суток! Имеется функция для генерации все возможных сочетаний из данного множества заданной длины. public...

Вывод значение var переменной
var lastseen = api.Friends.Get(api.UserId.Value, ProfileFields.LastSeen); MessageBox.Show(lastseen.ToString()); // вывожу так, вылазит...

Тип var для массива
Привет всем! Объясните, почему, подставив тип &quot;var&quot; вместо &quot;int&quot; компилятор перестал ругаться? static void ChangeVar(ref intarray) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru