Правильно ли работает 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
).