我有两个参数的方法:bool1和bool2。两者都是布尔值。我必须在代码中处理这些条件的每个组合。有没有更好的方法,然后使用嵌套的if / else:
if (bool1)
{
if(bool2)
{
}
else
{
}
}
else
{
if(bool2)
{
}
else
{
}
}
答案 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)
{
}
因为第二个条件将执行而不管第一个条件的结果如何。你能用更多的背景来解释你的问题,还是给出一个真实世界的例子?
添