Nullable DateTime是否正常工作?

And*_*ich 8 c# datetime

请检查以下代码

DateTime? tmp = new DateTime();
tmp = null;
return tmp.ToString();
Run Code Online (Sandbox Code Playgroud)

它回来了String.Empty.

这是对的吗?

可能是在第二行代码中引发异常会更好

jas*_*son 18

是的,这是对的.从文档中

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

还要注意Nullable<T>.Equals并且Nullable<T>.GetHashCode不要抛弃这种情况,但Nullable<T>.GetType 确实会抛出.这是因为Object.Equals,Object.GetHashCode并且Object.ToString被覆盖Nullable<T>Object.GetType不是(因为它不能被标记为virtual).