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