更具体一点,我有DateTime?生日
我的问题是在这种情况下会发生什么:
lblBirthDate.Text = myObject.BirthDate.GetValueOrDefault().ToString();
Run Code Online (Sandbox Code Playgroud)
如果BirthDate为null.我安装了resharper,并没有警告我,那里可能有一个空问题...
如果BirthDate是null,则获取默认实例的本地化字符串表示形式DateTime.也就是说,您将获得0001年1月1日00:00:00.0000000的字符串表示.
您没有收到ReSharper的警告,因为那里没有空问题.调用Nullable<T>.GetValueOrDefaulta的null实例不是运行时异常Nullable<T>.相反,如果您有一个null实例,则会获得默认值.这正是GetValueOrDefault意味着:得到Value,如果HasValue是true,否则得到的基本结构类型的默认值.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |