c# - 具有可空 bool 值的三值逻辑?

标签 c# .net enums logic nullable

我有一个简单的控件,在开始时没有选择任何内容,用户决定设置。总而言之,这是三值逻辑的标准示例。

所以我的第一个想法是采用 nullable bool 来持久化。通常这会导致我遇到一些烦人的 if (var == null) { ... } (或类似的东西)。

我再三想到枚举。

public enum Selection
{
   Yes,
   No,
   NotChoosenYet
}

在我的上下文中,这会带来一些枚举到 bool 的转换,但这并不是一个阻碍。

总而言之,我倾向于选择“Enum-way”,因为它更具可读性。 我搜索了一段时间,但找不到让我前进的问题。

有没有更好的方法我还没有考虑?也许一个标准的 .Net-Type 可以让思考更容易?

最佳答案

我会坚持使用 ENUMS。

我瞬间想到的三个原因:

  1. 更具可读性。
  2. 您避免了空指针和不必要的空检查代码。
  3. 您可以添加另一个选项(例如“稍后询问”),而无需重构整个源代码。

关于c# - 具有可空 bool 值的三值逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203336/

相关文章:

c# 对象定义属性是否可为空

c# - Powershell 结果集未在 C# 中获取

javascript - 将枚举转换为值数组(将所有 JSON 值放入数组中)

c# - 如何从类型变量中获取枚举的默认值

c# - 如何在 MVC 中使用 Javascript/AJAX 将整个对象传递给 Controller ​​?

c# - 使用 C# 确定输入到文本框中的字符数

C#,DataGridView - 选择新行后包含垃圾

.net - IIS 无法访问证书存储

c# - C# 中是否需要析构函数?

java - Gson 使用通用代码将枚举序列化和反序列化为整数