假设我有一个具有短定义的getter setter的字段,如下所示:
public double MyDouble { get; set; }
我想检查这个MyDouble值是否已设置。我不能这样检查:
if(MyDouble == null) .... else ....
因为double变量无法获取空值。那么如果设置与否,我怎么能检查这个值呢?我是否必须使用保持isSet状态的第二个变量,或者双重类型是否有任何默认值? 感谢。
答案 0 :(得分:5)
System.Double 是 struct (值类型)。
不能 null 。
你需要让它可以为空:
double? MyDouble { get; set; }
有关可空类型的更多信息:Nullable Types (C# Programming Guide)
答案 1 :(得分:2)
我建议你使用Nullable Value Types。可以为null的值类型可以设置为null,因此您可以检查double是否具有空值:
double? myVal = null;
if(myVal==null)
Console.WriteLine("NULL DOUBLE ENCOUNTERED !");
答案 2 :(得分:0)
double的默认值为0但是您可能希望在稍后阶段将此值设置为0,因此检查0似乎不太好。 你可以做的是将其构造函数中的值设置为 -
MyDouble = Double.MinValue;
并检查你的二传手
if(MyDouble == Double.MinValue) .... else ....
Double.MinValue is -1.7976931348623157E+308
你不太可能在课堂上设置。