bool1とbool2の2つのパラメーターを持つメソッドがあります。もちろん、どちらもブール値です。これらの条件のすべての組み合わせをコードで処理する必要があります。それを行うためのより良い方法は、ネストされたif / elseを使用することです:
if (bool1)
{
if(bool2)
{
}
else
{
}
}
else
{
if(bool2)
{
}
else
{
}
}
bool1とbool2の2つのパラメーターを持つメソッドがあります。もちろん、どちらもブール値です。これらの条件のすべての組み合わせをコードで処理する必要があります。それを行うためのより良い方法は、ネストされたif / elseを使用することです:
if (bool1)
{
if(bool2)
{
}
else
{
}
}
else
{
if(bool2)
{
}
else
{
}
}
var bothAreTrue = bool1 && bool2;
if(bothAreTrue){
}else if(bool1){
}else if(bool2){
}else{ //none is true
}
if (bool1 && bool2) { }
else if (bool1) {}
else if (bool2) {}
else {}
「実装に対するポリシー」の哲学(コードの実行方法ではなく、コードの実行内容を教えてください)に沿って、ブール値を少し非表示にすることで、コードを読みやすくすることができます。
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...
}
正直なところ、この条件は..と書くことができます。
if (bool1)
{
}
if (bool2)
{
}
2番目の条件は、最初の条件の結果に関係なく実行されるためです。より多くのコンテキストで問題を説明できますか、それとも実際の例を挙げていただけますか?
ティム