2012-08-15 68 views
-1

的雙重價值讓我們假設我有短定義的getter setter方法場像以下:
時吸氣setter方法使用

public double MyDouble { get; set; } 

我想,如果它被設置或不檢查這個MyDouble值。我不能這樣檢查:

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

因爲雙變量不能得到空值。那麼如何設置或不設置該值?我是否必須使用保持isSet狀態的第二個變量,或者是否存在雙精度型的默認值?
謝謝。

+1

默認爲一個雙是0 – SynerCoder 2012-08-15 06:50:13

+1

可以說我假設如果變量值爲0,那麼這意味着它沒有設置。但是如果價值被設置爲0,我會做什麼?我怎樣才能分開這些stutries? – Fer 2012-08-15 06:54:25

+0

你不能說我的默認值。但在我看來,這是最好的選擇。如果由於某種原因你不能有空,那麼isSet狀態就是要走的路。 – SynerCoder 2012-08-15 07:22:04

回答

2

我建議你使用空值類型。可空類型可以設置爲空,這樣你就可以檢查雙有一個空值或不:

double? myVal = null; 
if(myVal==null) 
    Console.WriteLine("NULL DOUBLE ENCOUNTERED !"); 
0

雙缺省值是0,但它可能可能要將該值設置爲0在稍後的階段,檢查0看起來不太好。 你可以做的是在其構造函數的值設置爲 -

MyDouble = Double.MinValue; 

,並在您的二傳手

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

Double.MinValue is -1.7976931348623157E+308這是極不可能的,你會在你的課堂上設置檢查。

+0

如果您可能希望將MyDouble的值設置爲Double.MinValue,該怎麼辦? – Guillaume 2012-08-15 07:00:47

+0

這就是我所說的不太可能。那麼你甚至不能使用可爲空的double。如果我想將該值設置爲null,您可能會反駁這一點。 '如果'永遠不會結束交配。 – 2012-08-15 07:04:43

+1

檢查空值比檢查Double.MinValue更好,並檢查Double.MinValue比檢查更好0 – Fer 2012-08-15 07:12:42