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

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

17.01.2013, 15:54. Показов 9874. Ответов 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,664
Записей в блоге: 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
6102 / 4958 / 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
6102 / 4958 / 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,664
Записей в блоге: 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
6102 / 4958 / 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
6102 / 4958 / 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,664
Записей в блоге: 14
19.01.2013, 23:06
Цитата Сообщение от Noob.net Посмотреть сообщение
Не забывайте о правилах хорошего тона,о правилах форматирования кода в каждой компании.
Я с вами согласен, но так как моя компания нигде не зарегистрирована и состоит только из меня ( ), то правила хорошего тона слегка стираются

Да, и повторюсь, тогда уж лучше придерживаться мнения именитых программистов.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
19.01.2013, 23:10
tezaurismosis, сколько людей - столько мнений. Сюда можно вставить слово "знаменитый" по обе стороны тире - ничего от этого не изменится
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
19.01.2013, 23:23
Psilon, я отношусь к этому по-разному. Некоторые вещи - лично моё видение, например явовская расстановка скобок, которую многие ненавидят
C#
1
2
3
int Method(int n) {
    // ...
}
А некоторые - прочёл хорошую книгу и увидел там совет (когда ставить var, а когда нет, к примеру) и подумал, а почему-бы и нет? А потом, своим привычкам трудно изменить, да и не особо хочется.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru