为什么在if语句中使用!= null?

时间:2015-02-12 21:03:23

标签: c# if-statement null coding-style

我来自C / C ++背景,最近开始了一项新的工作,做C#工作。我在很多代码和例子中找到了人们在if语句中使用这个约定

if(obj != null)

我记得被告知要尽可能避免使用否定逻辑。那么为什么不像

那样
if(obj)
用来代替吗?是否存在使用前一种编码方式的代码标准?我认为这两个陈述的评价相同,但也许他们的评价不同?

非常感谢任何输入。

2 个答案:

答案 0 :(得分:6)

简单的事实是,C#具有并使用一个真正的布尔类型。 if需要布尔值。因此,如果if(obj)不是布尔值,则obj是语法错误。

答案 1 :(得分:5)

if表达式必须是 boolean 。说我有一个字符串:

string test = null;

if (test)无法编译,因为test 不是bool 。它只返回字符串引用。因此,要检查null,实际上必须检查null

if (test != null) 返回bool的表达式,因此编译,并且是检查null的标准方法。