1

bool1とbool2の2つのパラメーターを持つメソッドがあります。もちろん、どちらもブール値です。これらの条件のすべての組み合わせをコードで処理する必要があります。それを行うためのより良い方法は、ネストされたif / elseを使用することです:

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

4 に答える 4

6
var bothAreTrue = bool1 && bool2;

if(bothAreTrue){

}else if(bool1){

}else if(bool2){

}else{ //none is true

}
于 2012-06-28T12:40:52.493 に答える
6
if (bool1 && bool2) { }
else if (bool1) {}
else if (bool2) {}
else {}
于 2012-06-28T12:41:58.423 に答える
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...
}
于 2012-06-28T12:44:14.690 に答える
-1

正直なところ、この条件は..と書くことができます。

if (bool1)
{
}

if (bool2)
{
}

2番目の条件は、最初の条件の結果に関係なく実行されるためです。より多くのコンテキストで問題を説明できますか、それとも実際の例を挙げていただけますか?

ティム

于 2012-06-28T12:43:06.857 に答える