-1

次のような短い定義のゲッターセッターを持つフィールドがあるとしましょう。

public double MyDouble { get; set; }

このMyDouble値が設定されているかどうかを確認したいと思います。私はこのようにチェックすることはできません:

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

double変数はnull値を取得できないためです。では、この値が設定されているかどうかを確認するにはどうすればよいですか?isSet状態を保持する2番目の変数を使用する必要がありますか、それともdouble型のデフォルト値がありますか?
ありがとう。

4

3 に答える 3

5

System.Double構造体値型)です。

nullにすることはできません。

null許容にする必要があります:

double? MyDouble { get; set; }

Nullable型の詳細:Nullable型(C#プログラミングガイド)

于 2012-08-15T06:52:15.353 に答える
2

Nullable値型を使用することをお勧めします。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 に答える