这两个代码检查之间的区别是什么

时间:2015-07-10 22:07:49

标签: c#

我看到不同的编码风格如下

1) 

Method1(object ob)
{
  if(ob == null)
    return;

  // do something
}

Method2(object ob)
{
  if(ob != null)
  {
    // do something
    return;
  }

}

这两种方法之间有什么区别。有些人检查空值并返回,有些人检查时不是等于null;

我们需要检查== null或不等于null ??

5 个答案:

答案 0 :(得分:1)

这是一种风格问题。它可能不会产生任何影响(实际上甚至可以编译成相同的IL)。

唯一的区别是代码的外观。第二个有额外的缩进程度。而不是通过if语句包围方法的整个主体,而不是某些程序员更愿意从方法返回并删除该额外选项卡。

答案 1 :(得分:0)

我会说这实际上取决于方法的作用。 Method 1只是检查值是否为空,而Method 2只对obj执行某些操作,如果它有值。

答案 2 :(得分:0)

我会想象,如果某些东西是空的,那么在逻辑上更有意义

布尔的东西; //默认为false

if(!thing){} //检查错误

int a = 1; int b = 2;

if(a == b){// false}

if(a!= b){// true}

答案 3 :(得分:0)

如果obj为null,只要你没有计划在函数中做任何其他事情,它几乎都是严格的风格。

选项1可以很好,因为它减少了整体嵌套(即使用选项2,最终将整个函数体嵌套在then子句中)

答案 4 :(得分:0)

区别在于" ob == null"编译,而" ob =!null"是胡说八道。

我认为你的意思是比较" =="到"!="。

对于" ob == null",如果ob为null,条件将为true(因此在它下面的代码块将运行)。

对于" ob!= null",如果ob为非null,则条件为真。