2013-01-16 47 views
-1

我有一個靜態布爾,我正在使用在web配置文件中創建一個應用程序設置密鑰。靜態布爾隱式枚舉c#

static readonly bool UseActiveXClient(ConfigurationManager.AppSettings["TrapezeUseActiveXClient"] = "true"); 

但是,我希望能夠有三個此鍵的設置,而不是隻是真或假。我正在考慮使用Enum來做到這一點是失敗的悲慘。任何幫助或建議將非常感謝

+0

您是否嘗試過使用結構? – Botonomous

+0

UseActiveXClient做什麼? –

+0

我不確定你爲什麼失敗,但這裏是頁面記錄枚舉:http://msdn.microsoft.com/en-us/library/sbbt4032(v=vs.80).aspx – BlackVegetable

回答

1

您可以使用Nullable<bool>的目的。

bool? value; 
value.HasValue == false // indicates no value 
value.Value == true // indicates true 
value.Value == false // indicates false 
+0

這似乎是一種實現三元組合值的黑客方式。你能解釋爲什麼你更喜歡這個枚舉嗎? – BlackVegetable

+0

只有在語義上適用於您的情況時,才應該使用它,即您的三個狀態爲「true」「false」和「none」。您不應該將它用於具有三個值的任意狀態。 – Servy

+0

因爲除了true/false以外,bool的唯一邏輯值是null/nothing/novalue,它可以用'Nullable '適當地表示。對於任何其他數據類型,我會更喜歡'Enum' – Tilak