我在下面的代码中遇到了一个奇怪的问题。尽管 Resharper 突出显示了代码段 (autorefresh == null)
,但它编译得很好,通知我表达式总是假的
bool? autorefresh = Properties.Settings.Default.autorefresh;
autorefresh = (autorefresh == null) ? false : autorefresh;
Enabled = (bool)autorefresh;
任何想法如何更好地解决这个问题?
编辑 07/02/2012 16:52
Properties.Settings.Default.autorefresh
以上是
bool
,而不是 string
。 最佳答案
我想你想要的是:
Enabled = Properties.Settings.Default.autorefresh ?? false;
根据您的评论,您似乎不必要地将
autorefresh
的值分配给 Nullable<bool>
。在保护数据方面,如果该类型无效或丢失, Settings
将返回该类型的默认值(对于 false
将是 boolean
)。因此,您的代码应该是:Enabled = Properties.Settings.Default.autorefresh;
关于c# - 在 C# 中查询 Nullable bool,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9179064/