使用getter setter时的double值

时间:2012-08-15 06:49:19

标签: c# getter-setter

假设我有一个具有短定义的getter setter的字段,如下所示:

public double MyDouble { get; set; }

我想检查这个MyDouble值是否已设置。我不能这样检查:

if(MyDouble == null) .... else ....

因为double变量无法获取空值。那么如果设置与否,我怎么能检查这个值呢?我是否必须使用保持isSet状态的第二个变量,或者双重类型是否有任何默认值? 感谢。

3 个答案:

答案 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你不太可能在课堂上设置。

相关问题