【发布时间】:2011-03-10 19:52:22
【问题描述】:
我正在维护一些代码,并且发现了很多以下模式:
var isMale = (row["Gender"].ToString() == "M") ? true : false;
而不是这个:
var isMale = (row["Gender"].ToString() == "M");
有什么理由为什么有人会这样做吗?有没有人认为前者更具可读性或更清晰?是否存在某种旧的 C“陷阱”?
【问题讨论】:
-
是的,明确地写“true”和“false”让我更容易阅读,尤其是当你把它设为模糊类型(var)时。我花了几秒钟才理解第二个而不是第一个。 YMMV。
-
@DOK 有趣的评论。那么,如果明确声明了类型(bool),你认为第一个还是更可读?
-
我宁愿在这里看到
bool而不是var。 -
我认为像这样的代码提高可读性的唯一方法是如果读者没有清楚地理解 operator== 是一个 boolean 运算符,但使用三元运算符是完全多余。如果难以理解这段代码或者 'isMale' 将是一个布尔值(考虑到它的命名方式,这应该不是问题),那么像这样的注释:// bool 将是比冗余运算符更适合初学者,或者更好的是,使 isMale 成为实际的布尔值。
-
我只是不明白为什么除了学习者之外的任何人都会写第一个案例。键盘迷?也希望它是一个布尔而不是一个变量。如果是学习者代码,那没关系,但如果我雇佣了一个实习生来写代码,我会非常担心。
标签: c# coding-style readability conditional-operator