Nullable DateTime是否正常工作?

时间:2010-12-28 15:26:58

标签: c# datetime

请检查以下代码

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

返回String.Empty

这是对的吗?

可能最好在第二行代码中引发异常

1 个答案:

答案 0 :(得分:18)

是的,这是对的。来自documentation

  

如果Nullable<T>属性为true,则为当前HasValue对象的值的文本表示形式;如果""属性为false,则为空字符串(HasValue)的文本表示形式

另请注意,Nullable<T>.EqualsNullable<T>.GetHashCode不会抛出此情况,但Nullable<T>.GetType 会抛出。这是因为Object.Equals覆盖了Object.GetHashCodeObject.ToStringNullable<T>,但Object.GetType未覆盖virtual(因为它不能被标记为{ {1}})。