C#嵌套IF和条件?

Joh*_*ann -6 c# if-statement

哪一个更好?明智的表现和明智的最佳实践.为什么?

if ((process_checking == true) && (standard_output.Contains("0")))
{
}
else if ((process_checking == true) && (standard_output.Contains("1")))
{
}
Run Code Online (Sandbox Code Playgroud)

要么

if (process_checking==true)
{
   if (standard_output.Contains("0"))
   {
     blah
   }
   else
    //there is only 0 or 1 value
   {
      blah
   }
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*nos 5

第一个必须考虑process_checking两次的值,因此性能(非常非常可忽略地)更差.当然你对"0"和"1"的假设,第一个必须检查"1",这是一个额外的工作.

真正的区别在于可读性.第二个更易读 - 你很清楚你在做什么,如果process_checking不是这样,整个块都会被跳过.

只要你没有嵌套太深,当它增加可读性时,一点点嵌套肯定是首选.