Nullable<int>隐式明确地访问a时有什么区别吗?
Nullable<int> x = 10;
Console.WriteLine("Value: {0}", x.Value);
Console.WriteLine("Value: {0}", (int)x);
Run Code Online (Sandbox Code Playgroud)
两者都打印10,但我想知道是否有任何特定的偏好使用一个而不是另一个.
显式强制转换运算符定义如下:
public static explicit operator T(T? value)
{
return value.Value;
}
Run Code Online (Sandbox Code Playgroud)
所以实际上,没有任何区别,因为它Value无论如何都使用了属性.
在MSDN上也有很好的描述:Nullable Explicit Conversion(Nullable to T)
返回值
类型:T参数的
Value属性值value.