【问题标题】:Whats wrong with setting nullable double to null? [duplicate]将 nullable double 设置为 null 有什么问题? [复制]
【发布时间】:2011-05-13 19:59:39
【问题描述】:

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

【问题讨论】:

标签: c#


【解决方案1】:

当使用?: 运算符时,它必须解析为单一类型,或在它们之间进行隐式转换的类型。在您的情况下,它将返回 doublenull,并且 double 没有到 null 的隐式转换。

你会看到

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

工作正常,因为在nullable doublenull 之间存在隐式转换

【讨论】:

    【解决方案2】:

    在这种情况下,双精度为0.0

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

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 2010-10-15
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2013-05-10
      相关资源
      最近更新 更多