在C#中合并嵌套的If(C#中的短路关键字)

Kam*_*yar 2 c# language-features conditional-statements

是否可以合并以下语句:

if (a != null)
{
  if (a.Count > 5)
  {
     // Do some stuff
  }
}  
Run Code Online (Sandbox Code Playgroud)

只有1个if语句,并且当第一个条件不满足时,不要检查第二个条件.(比如AndAlsoVB.NET中的关键字).就像是:

if (a != null /* if it is null, don't check the next statement */ &&& a.Count > 5)
{
   // Do some stuff
}
Run Code Online (Sandbox Code Playgroud)

Cam*_*ron 7

只是:

if ((a != null) && (a.Count > 5)) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在C#中,&&运算符短路,这意味着如果左侧表达式为真(例如VB.NET AndElse),它只会计算右手表达式.

And您在VB.NET中习惯使用的关键字不会短路,相当于C#&(按位和)运算符.

(同样,||C#中也有短路,而VB.NET Or就像C#一样|.)