为什么在 if 语句中使用 != null?
Why use != null in if statements?
我有 C/C++ 背景,最近开始了一份新工作,从事 C# 工作。我在网上的很多代码和示例中发现人们在 if 语句中使用此约定
if(obj != null)
我记得有人告诉我要尽可能避免使用负逻辑。那么为什么不像
if(obj)
改用了?是否有规定使用前一种编码风格的代码标准?我认为这两个陈述的评价相同,但也许它们的评价不同?
非常感谢任何意见。
简单的事实是,C# 并使用 真正的布尔类型。 if
需要一个布尔值。因此,如果 obj
不是布尔值,则 if(obj)
是一个语法错误。
if
表达式必须是 布尔值 。假设我有一个字符串:
string test = null;
if (test)
不会编译,因为 test
不是 bool。它只是 return 的字符串引用。因此,要检查 null,您实际上 必须检查 null:
if (test != null)
是一个表达式,它 做 return 一个布尔值,因此编译,并且是检查 null 的标准方法。
我有 C/C++ 背景,最近开始了一份新工作,从事 C# 工作。我在网上的很多代码和示例中发现人们在 if 语句中使用此约定
if(obj != null)
我记得有人告诉我要尽可能避免使用负逻辑。那么为什么不像
if(obj)
改用了?是否有规定使用前一种编码风格的代码标准?我认为这两个陈述的评价相同,但也许它们的评价不同?
非常感谢任何意见。
简单的事实是,C# 并使用 真正的布尔类型。 if
需要一个布尔值。因此,如果 obj
不是布尔值,则 if(obj)
是一个语法错误。
if
表达式必须是 布尔值 。假设我有一个字符串:
string test = null;
if (test)
不会编译,因为 test
不是 bool。它只是 return 的字符串引用。因此,要检查 null,您实际上 必须检查 null:
if (test != null)
是一个表达式,它 做 return 一个布尔值,因此编译,并且是检查 null 的标准方法。