Nullable.Value
和(<whatEverType>) Nullable
之间有什么区别吗?据我所知,如果未设置值或值本身,则两个方法都返回NULL。
例如:
DateTime? date = DateTime.Now;
DateTime now = (DateTime) date;
DateTime now2 = date.Value;
答案 0 :(得分:7)
不,没有区别。在未设置值的情况下,您将获得InvalidOperationException
。
更重要的是,这里是Nullable<T>
内的强制转换运算符的实现:
public static explicit operator T(Nullable<T> value) {
return value.Value;
}
(用Resharper反编译)
因此,强制转换运算符使用Value
成员。