如果+可空类型(C#)的简写

Bor*_*ens 7 c# conditional-operator

以下返回

无法确定条件表达式的类型,因为"double"和"<null>"之间没有隐式转换

aNullableDouble = (double.TryParse(aString, out aDouble) ? aDouble : null)
Run Code Online (Sandbox Code Playgroud)

之所以我不能只使用aNullableBool而不是使用aDouble的往返是因为aNullableDouble是生成的EntityFramework类的一个属性,它不能用作超标.

ljs*_*ljs 9

aNullableDouble = double.TryParse(aString, out aDouble) ? (double?)aDouble : null;
Run Code Online (Sandbox Code Playgroud)


Joe*_*nez 7

只需将语法吹成完整语法而不是速记......它会更容易阅读:

aNullableDouble = null;
if (double.TryParse(aString, out aDouble))
{
    aNullableDouble = aDouble;
}
Run Code Online (Sandbox Code Playgroud)