Это не ответ как таковой , но это слишком долго для комментария.
Вы должны строго рассмотреть , а не делать это.Нет никакой стилистической проблемы со смешиванием явной и логической типизации (вы должны выводить типы, когда вам это нужно, когда вы используете анонимные типы или когда это облегчает чтение кода), и есть множество потенциальных проблем, с которыми вы можете столкнуться при этом:
- Недопустимы объявления без присвоения
- Недопустимы объявления, присвоенные
null
- Объявления, имеющие супертип, но инициализированные для экземпляра подтипа(или совместимый, но другой тип) изменит их значение.
IE
object foo = "test";
...
foo = 2;
Очевидно, это простой (и маловероятный) пример, но изменение foo
с object
на var
приведет к foo
будучи напечатанным как string
вместо object
, и изменит семантику кода (в этом случае он даже не скомпилируется, но вы можете легко столкнуться с более трудными для поиска сценариями, в которых он изменяет разрешение перегрузки, но не выдает ошибку во время компиляции).
Другими словами, не делайте этого, пожалуйста.