Правильно ли работает Nullable DateTime?

Пожалуйста, проверьте следующий код

DateTime? tmp = new DateTime();
tmp = null;
return tmp.ToString();

Возвращается String.Empty,

Это правильно?

Может быть, будет лучше повысить исключение во второй строке кода

1 ответ

Решение

Да, это правильно. Из документации

Текстовое представление значения текущего Nullable<T> возражать, если HasValue свойство true или пустая строка ("") если HasValue свойство ложно.

Обратите внимание, что Nullable<T>.Equals а также Nullable<T>.GetHashCode не бросай в этом случае но это Nullable<T>.GetType бросает. Это потому что Object.Equals, Object.GetHashCode а также Object.ToString переопределены для Nullable<T> но это Object.GetType нет (потому что не может быть так как не помечено как virtual).

Другие вопросы по тегам