2011-02-14 116 views
6
public bool PrepaymentCalculating { get; set; } 

所以我在這樣的類中聲明瞭一個變量。我想這個默認爲'null'而不是false。我只需要使這是一個可空布爾值?還是有更好的方法來做到這一點?c中bool的默認值#

回答

15

我只需要使這是一個可爲null的布爾值?

是的。

還是有更好的方式來做到這一點?

您可以

public bool? PrepaymentCalculating { get; set; } 
5

嘗試

public bool? PrepaymentCalculating { get; set; } 

這裏有Nullable Types

0

布爾後不能爲空。默認值可能是錯誤的(但不要在此引用我)。

如果你希望它是空,然後是你必須把它聲明爲空。

+1

是的,默認值爲false。 – Craigt 2011-02-14 19:56:20

1

如果你希望它是零,那麼你需要使它可空類型。

5
public bool? PrepaymentCalculating { get; set; } 

將使其可以爲空。閱讀關於它here

1

像其他人一樣說,實現這一點,但我想我會添加,什麼這是你的目的是什麼?我不經常想要暴露爲可空的布爾值,因爲這意味着所有使用此屬性的值必須考慮可能的空值。

但有時我想知道,如果它是在特定情況下被初始化或沒有,如果沒有,則使用來自其他地方的值(例如級聯屬性值)。在這種情況下,您可能想要使用如下模式:

public bool PrepaymentCalculating { 
    get { 
     if (_PrepaymentCalculating != null) { 
      return (bool)_PrepaymentCalculating; 
     } else { 
      return somethingElse; // bool 
     } 
    } 
    set { 
     _PrepaymentCalculating = value; 
    } 
} protected bool? _PrepaymentCalculating =null;