Resharper は、このコードの「else」が冗長であると言っています。
if(a)
{
//Do Something
}
else if(b)
{
//Do Something
}
が true の場合はが評価されないため、はelse
冗長に見えません。が変数の場合、追加のオーバーヘッドはわずかですが、式の場合もあります。else
b
a
b
b
これは正しいです?
Resharper は、このコードの「else」が冗長であると言っています。
if(a)
{
//Do Something
}
else if(b)
{
//Do Something
}
が true の場合はが評価されないため、はelse
冗長に見えません。が変数の場合、追加のオーバーヘッドはわずかですが、式の場合もあります。else
b
a
b
b
これは正しいです?
最初の -block 内にある種のbreak
、continue
、return
、またはthrow
ステートメント (または) があり、常に実行が現在のブロックの外に分岐する場合は冗長です。goto
if
if(a)
{
return 0;
}
else if(b)
{
return 1;
}
この場合、コードが最初のブロックに入ると、2 番目のブロックに入る方法がないため、次のようになります。
if(a)
{
return 0;
}
if(b)
{
return 1;
}
この場合、あなたは正しいですが、これが彼らが最初からそれを持っていたと私が考える理由です:
特定の if-else 条件では、else 句を削除できます。次の方法を検討してください。
public int Sign(double d)
{
if (d > 0.0)
return 1;
else
return -1;
}
上記では、 if 句がメソッドから返されるため、else ステートメントを安全に削除できます。したがって、else がなくても、if 句本体を通過することはできません。
私には冗長に見えません。else を削除すると、 と の両方が true の場合、異なるプログラム フローにa
なります。b