好的,我们知道以下两行是等价的 -
(0 == i)(i == 0)此外,过去鼓励使用第一种方法,因为如果您不小心使用'='而不是'==',那么编译器就会给出错误消息.
我的问题是 - 在今天的一代漂亮的IDE和智能编译器中,你还推荐第一种方法吗?
特别是,当我看到以下代码时,这个问题突然出现在我脑海中 -
if(DialogResult.OK == MessageBox.Show("Message")) ...
Run Code Online (Sandbox Code Playgroud)
在我看来,我绝不会推荐上述内容.任何第二意见?
可能重复:
如何检查等于?(0 == i)或(i == 0)
为什么人们经常在C#中看到"null!= variable"而不是"variable!= null"?
我一直在看一个奇怪的教程以及一些DirectX代码,并注意到许多有经验的C++程序员用以下方式编写表达式:
(<constant> == <variable>)
Run Code Online (Sandbox Code Playgroud)
而不是我的传统智慧似乎更喜欢:
(<variable> == <constant>)
Run Code Online (Sandbox Code Playgroud)
例如if (NULL == ptr)而不是if (ptr == NULL).我更喜欢第二种选择,如果没有其他原因选择前者,我的理由是变量似乎是表达式的"接收"端.
但我怀疑前者用于避免无意中通过使用=而不是将变量的值赋给变量==.这是对的吗?
我刚刚在一些Exchange 2010代码中遇到过这段代码片段,我想知道是否有人知道程序员为什么这样做了.我从未见过像这样格式化的If语句.它看起来如此倒退必定有一个很好的理由吗?
if (true == MsgItem.HasAttachments)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
我假设它可能会对编码相同内容的各种其他方式进行一些优化;
if (MsgItem.HasAttachments)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
要么
if (MsgItem.HasAttachments == true)
{
// Code
}
Run Code Online (Sandbox Code Playgroud)
这不是什么大不了我只是好奇.
谢谢,迈克
更新:感谢所有有趣的观点.摘要似乎归结为传统编码标准.
我想知道,两者之间有什么区别
if(a == 5)或if(5 == a)
在C#中,哪一个更好?
我已经为iPhone SDK编程了大约6个月,但我对一些事情感到有些困惑......其中一个我在这里问:
为什么以下方面有所不同?
if (varOrObject == nil)
{
}
Run Code Online (Sandbox Code Playgroud)
VS
if (nil == varOrObject)
{
}
Run Code Online (Sandbox Code Playgroud)
来自perl背景,这让我感到困惑......
有人可以解释为什么两个(第二个)中的一个是真的,而如果两个例程在代码中一个接一个地放置,则第一个不会. varOrObject这两个if陈述之间不会发生变化.
没有特定的代码发生在这里,只是我已经在很多地方读过两个语句不同,但不是为什么.
提前致谢.
可能重复:
如何检查等于?(0 == i)或(i == 0)
为什么人们经常在C#中看到"null!= variable"而不是"variable!= null"?
为什么一些有经验的程序员会这样写表达式?
在C++中NULL!= value是什么意思?
例如,
int k =5;
if( 5 == k )
{
}
Run Code Online (Sandbox Code Playgroud)
比...更受欢迎
if (k == 5)
{
}
Run Code Online (Sandbox Code Playgroud)
是仅考虑格式化目的还是有任何原因?