C# 存储字段的是/否/未知值的正确方法是什么?

C# 存储字段的是/否/未知值的正确方法是什么?,c#,boolean,C#,Boolean,我有一个字段,可能是、否或未知。我应该将其存储为可空布尔值吗可为空。。还是创建枚举更好。在C#中,正确的方法是什么?没有“正确的方法”,您可以通过至少5种不同的方法实现这一点。但是到目前为止,一个可为空的bool对于你所拥有的东西来说是最具表现力的,对于你来说是最短的,涉及的工作量最少。使用它。今天您有一个字段存储Yes/No/Unknown,明天您可能会有更多或更少的值Nullable是可用选项中扩展性较小的选项,而enum提供了更高的表达能力,更不容易出错,并且可以在将来进行扩展。使用它。在

我有一个字段,可能是、否或未知。我应该将其存储为可空布尔值吗<代码>可为空。。还是创建枚举更好。在C#中,正确的方法是什么?

没有“正确的方法”,您可以通过至少5种不同的方法实现这一点。但是到目前为止,一个可为空的bool对于你所拥有的东西来说是最具表现力的,对于你来说是最短的,涉及的工作量最少。使用它。

今天您有一个字段存储Yes/No/Unknown,明天您可能会有更多或更少的值
Nullable
是可用选项中扩展性较小的选项,而
enum
提供了更高的表达能力,更不容易出错,并且可以在将来进行扩展。使用它。

在我看来,
NULL
的意思不是
未知
NULL
表示没有条目-
未知
另一方面是故意条目。因此,我会使用具有适当值的
enum

考虑到具有这三种状态的enum为(错误)解释留下的空间最小,我个人会选择该选项。是否有可能需要其他“类似null”的值?也就是说,您当前有
未知的
(我们大概不知道该值)-是否需要一个单独的
不适用的
(不存在该值)来区分?