Від 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
більшу частину часу (крім речей, таких як змінні типу інтерфейсу тощо). Він зберігає код лаконічним, що покращує читабельність. Однак все ж - зверніть увагу на те, що насправді є вирішеним типом.