我看到不同的编码风格如下
1)
Method1(object ob)
{
if(ob == null)
return;
// do something
}
Method2(object ob)
{
if(ob != null)
{
// do something
return;
}
}
这两种方法之间有什么区别。有些人检查空值并返回,有些人检查时不是等于null;
我们需要检查== null或不等于null ??
答案 0 :(得分:1)
这是一种风格问题。它可能不会产生任何影响(实际上甚至可以编译成相同的IL)。
唯一的区别是代码的外观。第二个有额外的缩进程度。而不是通过if语句包围方法的整个主体,而不是某些程序员更愿意从方法返回并删除该额外选项卡。
答案 1 :(得分:0)
我会说这实际上取决于方法的作用。 Method 1
只是检查值是否为空,而Method 2
只对obj
执行某些操作,如果它有值。
答案 2 :(得分:0)
我会想象,如果某些东西是空的,那么在逻辑上更有意义
布尔的东西; //默认为falseif(!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,则条件为真。