Типы нормальных значений (логические, целые, длинные, поплавковые, двойные, перечислимые и структурные) не обнуляются.
Значением по умолчанию для всех типов значений является 0.
CLR не позволит вам получить доступ к переменным, если они не были установлены. Вы можете подумать, что это не всегда так, но иногда CLR вмешивается и инициализирует их для вас. На уровне метода вы должны явно инициализировать все переменные перед их использованием.
Кроме того, как отмечают другие, начиная с .net 2.0 появился новый универсальный тип с именем Nullable<T>
. В C # есть несколько сокращений, например int? значит Nullable<int>
, двойной? означает Nullable<double>
и т. д.
Вы можете обернуть Nullable<T>
только в ненулевые типы значений, что нормально, поскольку ссылки уже могут иметь значение null.
int? x = null;
Для целых чисел? Хотя вы можете проверить на нуль, иногда лучше позвонить x.HasValue()
.
В C # есть также оператор объединения nullable ?? когда вы хотите присвоить обнуляемый тип значения, не обнуляемый. Но если у вас нет оператора, вы можете вызвать GetValueOrDefault ().
int y = x ?? 2; // y becomes 2 if x is null.
int z = x.GetValueOrDefault(2); // same as y