我有一个简单的控件,在开始时没有选择任何内容,用户决定设置是或否。总而言之,这是三值逻辑的标准示例。
所以我的第一个想法是采用 nullable bool 来持久化。通常这会导致我遇到一些烦人的 if (var == null) { ... }
(或类似的东西)。
我再三想到枚举。
public enum Selection
{
Yes,
No,
NotChoosenYet
}
在我的上下文中,这会带来一些枚举到 bool 的转换,但这并不是一个阻碍。
总而言之,我倾向于选择“Enum-way”,因为它更具可读性。 我搜索了一段时间,但找不到让我前进的问题。
有没有更好的方法我还没有考虑?也许一个标准的 .Net-Type 可以让思考更容易?
最佳答案
我会坚持使用 ENUMS。
我瞬间想到的三个原因:
- 更具可读性。
- 您避免了空指针和不必要的空检查代码。
- 您可以添加另一个选项(例如“稍后询问”),而无需重构整个源代码。
关于c# - 具有可空 bool 值的三值逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203336/