可能重复:
Why can't I set a nullable int to null in a ternary if statement?
Nullable types and the ternary operator. Why won't this work?
以下
的错误public double? Progress { get; set; }
Progress = null; // works
Progress = 1; // works
Progress = (1 == 2) ? 0.0 : null; // fails
无法确定条件表达式的类型,因为'double'和'< null>'之间没有隐式转换
答案 0 :(得分:23)
使用?:
运算符时,它必须解析为单个类型或具有它们之间隐式转换的类型。在您的情况下,它会返回double
或null
,而double也没有隐式转换为null
。
你会看到
Progress = (1 == 2) ? (double?)0.0 : null;
工作正常,因为 是nullable double
和null
答案 1 :(得分:0)
在这种情况下,双倍是0.0
Progress = (1 == 2) ? (double?)0.0 : null; // works