是否有任何理由"向后"写东西,例如:if("some_text"== var_name)?

use*_*613 6 c# coding-style

我正在使用C#.NET以4人为一组进行一个项目.虽然我自然而然地写下了这样的内容: if (var_name == "some_text"),其中一位小组成员强烈要求改变这条线,if ("some_text" == var_name)并声称她从一些传感器程序员那里学到了"这是一种更好的编程习惯".我们小组中没有人,甚至她自己都不明白这背后的动机是什么,除了感觉更尴尬.这是一种更好的做法,还是另一种都市神话?

And*_*ndy 11

在C#中没有充分的理由这样.

在C中你可以无意中忘记其中一个=符号,C允许这样:

if (x = 5)

哪个将编译并始终返回true或false(如果变量设置为任何非零值,则为true;如果为零,则为false).这是一个常见的错误来源,所以写入if (5 == x)可以防止这种情况,因为如果您省略了其中一个=符号,C编译器会抱怨.

但是,C#不允许赋值被视为布尔条件,因此不可能犯这个错误,所以这个建议毫无意义.我建议坚持使用更自然的"if x equals 5"风格.


kor*_*Zis 6

是的,我不是它的忠实粉丝..但是有..如果你错误地使用operator assign(=)而不是比较它将无法编译和/或它会立即崩溃.至少在"常见"编程语言中;-)

这个网络更多地讲述了它 - http://united-coders.com/christian-harms/what-are-yoda-conditions/