Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将nullable double设置为null有什么问题?_C# - Fatal编程技术网

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

C# 将nullable double设置为null有什么问题?,c#,C#,可能的重复项: 下面的有什么问题吗 public double? Progress { get; set; } Progress = null; // works Progress = 1; // works Progress = (1 == 2) ? 0.0 : null; // fails 无法确定条件表达式的类型,因为“double”和“”之间没有隐式转换 当使用?:运算符时,它必须解析为单个类型,或者在它们之间具有隐式转换的类型。在您的情况下,它将返回一个double或null,并

可能的重复项:

下面的有什么问题吗

public double? Progress { get; set; }
Progress = null; // works
Progress = 1; // works
Progress = (1 == 2) ? 0.0 : null; // fails
无法确定条件表达式的类型,因为“double”和“”之间没有隐式转换


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

你会看到的

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

工作正常,因为在这种情况下,
null-able-double
null
之间存在隐式转换,所以double是
0.0

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