-1

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

public double MyDouble { get; set; }

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

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

因为双变量不能得到空值。那么我如何检查这个值是否已设置?我是否必须使用第二个保持 isSet 状态的变量,或者 double 类型是否有任何默认值?
谢谢。

4

3 回答 3

5

System.Double是一个结构值类型)。

它不能为null

您需要使其可以为

double? MyDouble { get; set; }

更多关于可空类型:可空类型(C# 编程指南)

于 2012-08-15T06:52:15.353 回答
2

我建议您使用可空值类型。可以为 null 的值类型可以设置为 null,因此您可以检查 double 是否具有 null 值:

double? myVal = null;
if(myVal==null)
   Console.WriteLine("NULL DOUBLE ENCOUNTERED !");
于 2012-08-15T06:53:55.897 回答
0

double 的默认值为 0,但您可能希望在稍后阶段将此值设置为 0,因此检查 0 似乎不好。您可以做的是将其构造函数中的值设置为 -

MyDouble = Double.MinValue;

并检查你的二传手

if(MyDouble == Double.MinValue) .... else ....

Double.MinValue is -1.7976931348623157E+308你不太可能在课堂上进行设置。

于 2012-08-15T06:57:19.967 回答