2013-01-16 61 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