我想知道从一个可空类型转换为另一个"兼容"可空类型的最佳方式(在更安全和简洁的意义上)是什么.
具体来说,从十进制转换?加倍?可以使用:
public double? ConvertToNullableDouble(decimal? source)
{
return source.HasValue ? Convert.ToDouble(source) : (double?) null;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?也许利用标准转换?
Avn*_*tan 27
为胜利而建造的演员阵容!刚刚在VS2012 和 VS2010中进行了测试:
decimal? numberDecimal = new Decimal(5);
decimal? nullDecimal = null;
double? numberDouble = (double?)numberDecimal; // = 5.0
double? nullDouble = (double?)nullDecimal; // = null
Run Code Online (Sandbox Code Playgroud)
只使用显式强制转换会将null转换为null,并将内部十进制值转换为double.成功!