有没有办法将其折叠成一个if条件,或只是一个return语句?
public bool SomethingEnabled
{
if (!condition1)
{
return false;
}
return condition2
&& (condition3 || !condition4);
}
答案 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;
}