C#:正确的“if - elseif”格式

时间:2012-03-22 11:02:01

标签: c# if-statement

我经常遇到以下问题,我想知道是否有更好的方法来处理它:

if (A || B)
{
    //Start stuff if either A or B is true. Then:

    if (A && B)
        //DoSomething
    else if (A && !B)
        //DoSomething
    else if (B && !A)
        //DoSomething
}

我问,因为当注释被代码替换时,if-elseif-elseif最终看起来像是一团糟。甚至没有谈论当涉及到C时该怎么做。欢迎任何帮助〜

2 个答案:

答案 0 :(得分:3)

至少,最后两个条件有点多余,可以简化:

if (A && B)
    //DoSomething
else if (A)
    //DoSomething
else if (B)
    //DoSomething

因为我们已经知道两者都不能true。除此之外,我不知道如何进一步简化这一点。由于您基本上对每种情况的排列感兴趣,因此您基本上需要对它们进行处理。

答案 1 :(得分:1)

这无法回答,但无论如何,这里有一些想法:

  • 使用多态性
  • 分解方法