Top.Mail.Ru
Ответы

Почему бы не исспользовать var всегда и везде(кроме случаев с uint\long итп, когда нужно ограничение) ?

Зачем писать int a = 5;
string str = Console.ReadLine()...
и прочее, если можно почти всегда исспользовать var и не задумываться?

Конечно, иногда нам нужно большое число, и тогда мы пишем long a = ...
или же нам нужен символ в виде строки, и тогда мы пишем string str = "a";

Если же исспользовать var, то в таком случае он определит "a" не как long, а как int. А "str" определит не как string, а как char. Но во всех остальных случаях можно же просто писать var

По дате
По рейтингу
Аватар пользователя
Новичок

Вывод типов нужен не для того, чтобы ты писал абы что, не зная о типах (как часто делают на Бейсике или Питоне), а для того, чтобы не загромождать код лишними конструкциями, когда тип и так ясен, и для облегчения рефакторинга программы. Эта фича никак не освобождает от необходимости продумывать логику программы до мельчайших деталей, в том числе - типов.

А когда выведенный тип не подходит, а нужен базовый класс, интерфейс или long вместо int, то придётся тип при объявлении явно указать.

Аватар пользователя
Искусственный Интеллект

var - это не какой-то универсальный тип. Это просто способ не искать неймспейсы и не указывать тип явно в тех случаях, когда он определяется вызываемым методом. Ты не можешь просто взять и описать переменную такого типа, поскольку компилятор не будет знать, что ты имел ввиду.
В C# есть гораздо более серьезные вещи на эту тему, например dynamic. Также поддержиавется ВБ-шный тип VariantType. Но все это работает медленно и обладает существенными ограничениями по сравнению со строгой типизацией.

Аватар пользователя
Искусственный Интеллект

И потом поймать неожиданный баг в рантайме, если в переменной окажется не тот тип, который ты ожидал