Использование var или не использование var
Возможный дубликат:
С# 'var' против производительности определенного типа
Привет всем,
Недавно я видел код, который использует var
много.
например:.
var myString = GetAnyString();
var myInstance = GetClass();
вместо
string myString = GetAnyString();
MyClass myInstance = GetClass();
Помимо читаемости (я думаю, что использование var
не очень читаемо), есть ли какие-либо преимущества и/или недостатки, использующие его? Как насчет производительности
Ответы
Ответ 1
var заменяется компилятором с правильным типом, поэтому нет производительности производительности во время выполнения, кроме очень небольшого времени на сборке, возможно (veeeeeeeery small).
Собственно, из точки удобочитаемости vue я лично делаю следующее:
Кроме того, у вас может возникнуть соблазн использовать их при создании очень сложного типа, например:
var myDict = new Dictionary<string, List<Tuple<string, object>>>();
Здесь он действительно улучшает читаемость.
Ответ 2
Это субъективно, но я не люблю использовать vars. Что касается меня, они не улучшают читаемость.
Но общее руководство по использованию var
следующее:
Используйте var
, когда совершенно ясно, какой тип переменной объявляется:
Dictionary<string, Dictionary<string, string>> varOfSomeLongType = new Dictionary<string, Dictionary<string, string>>();
или когда вы объявляете переменную анонимного типа:
var linqResult = from element in SomeCollection
select new { element.A, element.B }
Ответ 3
Есть ли какие-либо преимущества и/или недостатки, используя его?
Преимущество: меньше набрав.
(я думаю, что использование var не очень читаемо)
Я частично согласен с этой точкой.
Это менее читаемо, если у вас var s = foo();
вместо string s = foo;
. В других случаях это может быть более читаемым.
Как насчет производительности
Во время выполнения нет никакой разницы. Компилятор преобразует его в один и тот же промежуточный код, как если бы вы явно указали тип.