Использование ключевого слова С# var

Возможные дубликаты:
Что использовать: var или тип имени объекта?
Использование ключевого слова var в С#
Что означает ключевое слово var?
Должен ли я всегда предлагать исключаемые типизированные локальные переменные в С# 3.0?

Я только что установил пробную версию ReSharper, чтобы оценить ее для моей компании. Одна вещь, которую я заметил, заключается в том, что я могу изменить следующий (пример):

string s = "";

к

var s = "";

Лучше ли использовать ключевое слово var вместо использования типа объекта при объявлении переменных? Какие преимущества он дает. Для контекста я бывший разработчик Java, который только что перешел на работу .Net.

Ответ 1

Мне кажется, что использовать var, где он упрощает чтение кода, что для меня означает, что тип, который заменяет var, должен быть полностью очевиден.

Например, это было бы полезно использовать var (надуманный пример):

var thing = new Dictionary<int, KeyValuePair<string, int>>();

Однако это было бы плохое использование var:

var thing = GetThingFromDatabase();

Ответ 2

Я считаю это полезным в некоторых случаях, когда объявление типа очень длинное, например:

Dictionary<int, string> item = new Dictionary<int, string>();

становится

var item = new Dictionary<int, string>();

Ответ 3

Это то же самое, потому что с использованием ключевого слова var переменная - это нечеткость, а компилятор указывает тип во время сборки. Я предпочитаю указывать тип, а не использовать var в большинстве случаев, поэтому я меняю настройки resharper.

Ответ 4

Как я помню, Resharper просто говорит, что он может быть написан таким образом. Он не говорит, что должен.

Многие предложения - это просто предложения, которые я обернулся в первый раз, когда увидели их. Это один из них.

Другим было то, что он сказал, что избыточно писать "this.someProperty", в то время как я думаю, что код становится легче читать, делая это.

Ответ 5

У Resharper также есть предложение преобразовать if statement в true или not true. Почти то же самое, но это зависит от вашего стиля кодирования. Итак, когда вы находите использование var более удобным - используйте это предложение.