var
в C# — удобство или маска
С появлением ключевого слова var
нам дали возможность уменьшить количество шаблонного кода и писать более компактные выражения.
Вместо явного написания громоздких типов можно писать лаконичный код:
// Вместо List<Dictionary<string, List<Tuple<int, DateTime>>>> data = ...
var data = GetComplexData();
Также
var
не делает переменную динамической, это всё тот же строго типизируемый код.Но есть и сильный аргумент против использования
var
. На примере кода выше:// Вместо List<Dictionary<string, List<Tuple<int, DateTime>>>> data = ...
var data = GetComplexData(); // каков тип data? int, string, CustomType?
Тип, получаемый из функции неочевиден и это в разы ухудшает читаемость кода.
var
— полезный инструмент, но требует дисциплины. При очевидном типе он упрощает код, при неочевидном — мешает пониманию.var
в коде или сторонник явного? Делитесь мыслями в комментариях 👇