Доброго времени суток!
Часто стал видеть в исходниках выражения типа var a = конструктор или функция.
Зачем используется var почему не используется определение конкретного типа объекта?
Да и в конце концов почему var, а не object если в шарпе любой объект унаследован от object ?
Ps складывается впечатление, что var уже используется и к месту и не к месту, наподобие некоторых ответов на форуме с использованием регулярных выражений, linq, и других страшных слов.
Декларация
var x = new List<int>();
строго равнозначна декларации
List<int> x = new List<int>();
Просто компилятор дописывает за вас очевидный кусок, чтобы вам не пришлось писать одно и то же дважды.
Декларация же
object x = new List<int>();
— совершенно другой зверь! Если в предыдущем случае вы могли написать x[0], то в этом случае такой код не откомпилируется, поскольку для object'а индексатор (да и все остальные функции, специфичные для List<int>, не определены.
У var есть и другие преимущества перед явным объявлением типа, кроме сокращения записи. Дело в том, что вы можете завести переменную, содержащую объект анонимного типа, только с использованием var (ну или с помощью трюков с generic'ами).
Однако, var не может быть использовано для инициализаторов полей.
var - это ключевое слово, которое позволяет не указывать тип локальной переменной в случае, когда он может быть получен из правой части выражения.
Использовать следует везде, где тип переменной очевиден из той самой правой части выражения, либо где имя типа очень длинное и сильно загромождает код.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости