我正在使用C#.NET以4人为一组进行一个项目。虽然我自然写下了类似的东西:
if (var_name == "some_text")
,其中一位小组成员坚决要求将这一行更改为if ("some_text" == var_name)
并声称“这是一种更好的编程习惯”,她从一些传感器程序员那里学到了这一点。我们小组中没有人,甚至她自己都不明白这背后的动机是什么,除了感觉更尴尬。这是一种更好的做法,还是只是另一种都市神话?
答案 0 :(得分:11)
在C#中没有充分的理由。
在C中,你可能会无意中忘记其中一个=符号,C允许这样:
if (x = 5)
将编译并始终返回true或false(如果变量设置为任何非零值,则为true;如果为零,则为false)。这是一个常见的错误来源,因此编写if (5 == x)
可以防止这种情况,因为如果您省略了其中一个=符号,C编译器会抱怨。
答案 1 :(得分:6)
是的,我不是它的忠实粉丝..但是有..如果你错误地使用运算符assign(=
)而不是比较它将无法编译和/或它会立即崩溃。至少在“常见”编程语言中; - )
此网络对此有更多了解 - http://united-coders.com/christian-harms/what-are-yoda-conditions/
答案 2 :(得分:2)
当我参加我的第一个C ++课程时,我开始在大学里这样做,以便不小心分配我试图检查的值,而且它总是跟着我。但是,当我使用C#时,我倾向于这样做:
if (var_name.Equals("some_text"))
这不仅可以防止意外分配,而且在视觉上看到Equals()比看到==更加理解。只是我的两分钱。
答案 3 :(得分:1)
当我参加大学的编程课程时,我被教导要向后写。我们使用的是C ++,正如其他答案所说,它在C ++中有所不同。