Возможный дубликат:
C # согласен с сравнение типов значений с null
Если я попытаюсь назначить null
типу, не допускающему значения NULL, в C #:
System.DateTime time = null;
Я получу ошибку времени компиляции:
ошибка CS0037: не удается преобразовать значение NULL в System.DateTime, поскольку это тип значения, не допускающий значения NULL.
что имеет смысл. Но если сравнить этот же тип с null
:
System.DateTime time = obtainFromSomewhere();
if( time == null ) {
//whatever;
}
ошибки времени компиляции нет. Для меня это не имеет смысла - если я не могу назначить null
, то почему это вообще должно быть null
?
Почему мне разрешено сравнивать тип, не допускающий значения NULL, с null
?