处理两种bool条件组合的更好方法是什么?

时间:2012-06-28 12:38:08

标签: c# if-statement

我有两个参数的方法:bool1和bool2。两者都是布尔值。我必须在代码中处理这些条件的每个组合。有没有更好的方法,然后使用嵌套的if / else:

if (bool1)
{
    if(bool2)
    {
    }
    else
    {
    }
}
else
{
    if(bool2)
    {
    }
    else
    {
    }
}

4 个答案:

答案 0 :(得分:6)

var bothAreTrue = bool1 && bool2;

if(bothAreTrue){

}else if(bool1){

}else if(bool2){

}else{ //none is true

}

答案 1 :(得分:5)

if (bool1 && bool2) { }
else if (bool1) {}
else if (bool2) {}
else {}

答案 2 :(得分:1)

为了与“实施政策”理念保持一致(告诉我你的代码 ),你可以通过隐藏布尔人一点:

public enum WhatBool1AndBool2ActuallyMean
{
    WhatItMeansWhenBothAreTrue,
    WhatItMeansWhenOnlyBool1IsTrue,
    WhatItMeansWhenOnlyBool2IsTrue,
    WhatItMeansWhenNeitherAreTrue
}

public WhatBool1AndBool2ActuallyMean GrokMeaning(bool bool1, bool bool2) {...}

...

WhatBool1AndBool2ActuallyMean meaning = GrokMeaning(bool1, bool2);
switch(meaning)
{
   case WhatBool1AndBool2ActuallyMean.WhatItMeansWhenBothAreTrue:
       ...
       break;
   case...
}

答案 3 :(得分:-1)

说实话,这种情况可以写成......

if (bool1)
{
}

if (bool2)
{
}

因为第二个条件将执行而不管第一个条件的结果如何。你能用更多的背景来解释你的问题,还是给出一个真实世界的例子?