我有一个简单的控件,一开始没有选择,用户可以决定设置为是或否。总的来说,这是三值逻辑的标准示例。
我的第一个想法是使用可空布尔值进行持久化。通常,这会导致一些烦人的if (var == null) { ... }
(或类似的内容)。
第二个想法是使用枚举。
public enum Selection
{
Yes,
No,
NotChoosenYet
}
在我的情境下,这会涉及到一些枚举到布尔值的转换,但这并不是一个致命问题。
总的来说,我倾向于选择“枚举方式”,因为它更易读。 我在 Stack Overflow 上搜索了一段时间,但找不到一个能帮我进一步了解的问题。
还有其他更好的方法吗?也许有标准的 .Net 类型可以使事情更容易?
enum
怎么比可空布尔类型bool?
更好呢?你总是需要使用一些if
语句。 - H Hif (selection == Selection.NotChoosenYet) { ...
这种写法比较冗长。而使用switch
更加啰嗦。 - Grant Thomas