当出现多个条件时,折叠if语句

时间:2011-06-05 04:16:05

标签: c#

有没有办法将其折叠成一个if条件,或只是一个return语句?

     public bool SomethingEnabled
     {
            if (!condition1)
            {
                return false;
            }

            return condition2
                && (condition3 || !condition4);
      }

4 个答案:

答案 0 :(得分:7)

这相当于:

public bool SomethingEnabled
{
    return condition1 && condition2 && (condition3 || !condition4);
}

但为了便于阅读和维护,我强烈建议不要编写过于聪明的代码。

答案 1 :(得分:2)

return condition1 && condition2 && (condition3 || !condition4);

答案 2 :(得分:2)

return condition1 && (condition2 && (condition3 || !condition4));

第一个条件是如果condition1为false则返回false。如果condition1为false,则条件将完全评估为false。如果这是真的,它会评估其余的情况。

答案 3 :(得分:1)

更好的名字和小功能会有所帮助:

public bool SomethingEnabled
{
   if (IsInvalid) return false;

   return IsInReadyState && IsInOtherState;
}

public bool IsInvalid
{
   return !condition1;
}

public bool IsInReadyState
{
   return condition3 || !condition4;
}

public bool IsInOtherState
{
   return condition2;
}