将nullable double设置为null有什么问题?

时间:2010-11-22 12:51:52

标签: c#

  

可能重复:
  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>'之间没有隐式转换

2 个答案:

答案 0 :(得分:23)

使用?:运算符时,它必须解析为单个类型或具有它们之间隐式转换的类型。在您的情况下,它会返回doublenull,而double也没有隐式转换为null

你会看到

Progress = (1 == 2) ? (double?)0.0 : null;

工作正常,因为 nullable doublenull

之间的隐式转换

答案 1 :(得分:0)

在这种情况下,双倍是0.0

Progress = (1 == 2) ? (double?)0.0 : null; // works