相关疑难解决方法(0)

如何检查等于?(0 == i)或(i == 0)

好的,我们知道以下两行是等价的 -

  1. (0 == i)
  2. (i == 0)

此外,过去鼓励使用第一种方法,因为如果您不小心使用'='而不是'==',那么编译器就会给出错误消息.

我的问题是 - 在今天的一代漂亮的IDE和智能编译器中,你还推荐第一种方法吗?

特别是,当我看到以下代码时,这个问题突然出现在我脑海中 -

if(DialogResult.OK == MessageBox.Show("Message")) ... 
Run Code Online (Sandbox Code Playgroud)

在我看来,我绝不会推荐上述内容.任何第二意见?

c c++ coding-style

22
推荐指数
8
解决办法
9138
查看次数

为什么一些有经验的程序员会在变量之前写出比较值?

可能重复:
如何检查等于?(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).我更喜欢第二种选择,如果没有其他原因选择前者,我的理由是变量似乎是表达式的"接收"端.

但我怀疑前者用于避免无意中通过使用=而不是将变量的值赋给变量==.这是对的吗?

c c++ coding-style

21
推荐指数
6
解决办法
4277
查看次数

C#if语句.内部运作问题

我刚刚在一些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)

这不是什么大不了我只是好奇.

谢谢,迈克

更新:感谢所有有趣的观点.摘要似乎归结为传统编码标准.

c#

13
推荐指数
4
解决办法
1825
查看次数

C#中的if(a == 5)或if(5 == a)之间有什么区别吗?

我想知道,两者之间有什么区别

if(a == 5)或if(5 == a)

在C#中,哪一个更好?

c#

3
推荐指数
4
解决办法
1337
查看次数

iPhone SDK:请解释为什么"nil =="与"== nil"不同

我已经为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陈述之间不会发生变化.

没有特定的代码发生在这里,只是我已经在很多地方读过两个语句不同,但不是为什么.

提前致谢.

c iphone null objective-c

1
推荐指数
1
解决办法
670
查看次数


标签 统计

c ×4

c++ ×3

c# ×2

coding-style ×2

iphone ×1

null ×1

objective-c ×1