Из MSDN :
Тем не менее, использование var действительно может сделать ваш код более сложным для понимания другими разработчиками. По этой причине документация C # обычно использует var только тогда, когда это требуется.
Я действительно, действительно не люблю неявную типизацию. На первый взгляд, это делает код более читабельным, но может привести к множеству проблем в будущем. Если dev изменяет инициализатор переменной, скажем, из
var myFloat=100f;
в
var myFloat=100;
или
var myFloat=100.0;
Тип изменится, что приведет к большому количеству ошибок компиляции или, если он находится в веб-представлении, и вы не используете шаг после сборки для предварительной компиляции своих представлений, к целому множеству ошибок времени выполнения, которые не будут обнаружены без эффективного тестирование перед развертыванием.
Неявная типизация также не работает везде (из той же ссылки MSDN)
var можно использовать только тогда, когда локальная переменная объявлена и инициализирована в том же операторе; переменная не может быть инициализирована нулем, или группой методов, или анонимной функцией.
var нельзя использовать для полей в области видимости класса.
Переменные, объявленные с помощью var, нельзя использовать в выражении инициализации. Другими словами, это выражение допустимо: int i = (i = 20); но это выражение вызывает ошибку во время компиляции: var i = (i = 20);
Несколько переменных с неявным типом не могут быть инициализированы в одном выражении.
Если тип с именем var находится в области видимости, ключевое слово var будет преобразовано в имя этого типа и не будет рассматриваться как часть неявно типизированного объявления локальной переменной.
Поддержание согласованности вашего кода (в данном случае везде используется явная типизация) - очень и очень хорошая вещь. По моему мнению,var
это ленивый и не дает никакой реальной выгоды, и вводит еще одну потенциальную точку отказа в уже сложном процессе.
Обновление 2017
Я полностью передумал. Работая в C #, я использую var
большую часть времени (исключая такие вещи, как переменные типа интерфейса и тому подобное). Он сохраняет код, который улучшает читабельность. Тем не менее, обратите внимание на то, что на самом деле разрешенный тип.