以下内容返回
无法确定条件表达式的类型,因为'double'和'< null>'之间没有隐式转换
aNullableDouble = (double.TryParse(aString, out aDouble) ? aDouble : null)
我之所以不能使用aNullableBool而不是使用aDouble的往返是因为aNullableDouble是生成的EntityFramework类的属性,不能用作超出标准。
答案 0 :(得分:9)
aNullableDouble = double.TryParse(aString, out aDouble) ? (double?)aDouble : null;
答案 1 :(得分:7)
只需将语法吹成完整语法而不是简写...它会更容易阅读:
aNullableDouble = null;
if (double.TryParse(aString, out aDouble))
{
aNullableDouble = aDouble;
}
答案 2 :(得分:1)
aNullableDouble = (double.TryParse(aString, out aDouble)?new Nullable<double>(aDouble):null)
答案 3 :(得分:1)
使用可空类型的有趣副作用是你不能真正使用速记IF。速记IF必须从两个条件返回相同的Type,并且在任何一种情况下都不能为null。所以,施放或写出来:)
答案 4 :(得分:0)
.NET支持nullable types,但是通过声明它们,你必须对它们有所不同(因为,可以理解的是,现在通常是一种值类型的东西就像引用一样)。
如果您最终不得不在可空双打和常规双打之间进行过多转换,这也可能没什么帮助......就像自动生成的一组类的情况一样。