【发布时间】:2013-08-13 07:42:18
【问题描述】:
我有一个简单的控制,在开始时没有选择,用户决定设置 yes 或 no。总而言之,三值逻辑的标准示例。
所以我的第一个想法是采用可为空的布尔值来坚持。通常这会导致我遇到一些烦人的if (var == null) { ... }(或类似的东西)。
第二个想法让我想到了 Enums。
public enum Selection
{
Yes,
No,
NotChoosenYet
}
在我的上下文中,这为布尔转换带来了一些枚举,但这不是一个展示停止器。
总而言之,我倾向于选择“Enum-way”,因为它更具可读性。 我搜索了一段时间,但找不到让我前进的问题。
有没有更好的方法我还没有考虑?也许是一个标准的 .Net-Type 可以让思考更容易?
【问题讨论】:
-
如果您在使用布尔值等时不对变量使用有意义的名称,那么枚举肯定会更具可读性。但是,无效性检查有什么烦人的?这是标准程序。
-
那么
enum比bool?好多少?无论如何,你会有一些ifs。 -
我知道很多代码有很多 if (var == null) 检查 self 中的代码变得比应该的更混乱(或更大)。也许这就是我不喜欢 null 的原因。
-
@Micha 然而
if (selection == Selection.NotChoosenYet) { ...更长。而switch则更加冗长。
标签: c# .net enums logic nullable