使一个非常长的switch语句更具可读性

时间:2018-06-02 11:37:22

标签: c# switch-statement

我已经写了一个包含11个案例的switch语句,如下所示......

switch (x)
{
    case x = 0:
        x = x + 1;
    break;
    case x = 1:
        x = x + 2;
    break;
    // and so one...
}

我发现问题是通过以这种方式编写代码看起来非常丑陋而且难以维护,还有另一个问题吗? 将其格式化为更具可读性的方式

(注意:如果问题不是关于主题或有什么不对请,请在downvoting /报告之前告诉我它是什么)

1 个答案:

答案 0 :(得分:4)

您当前的代码无法编译,我认为您的意思是:

switch (x)
{
    case 0:
        x = x + 1;
    break;
    case 1:
        x = x + 2;
    break;
}

这只是我自己的猜测,但switch语句的其余部分可能如下所示:

case 2:
    x = x + 3;
break;
case 3:
    x = x + 4;
break;
case 4:
    x = x + 5;
break;

你可以简化整个过程:

x += x + 1

如果我错误地猜到了,你仍然可以尝试通过使用字典来简化这一点。这是一个例子:

// It could also be a Dictionary<int, Func<int, int>> or some other delegate
// if you want to compute the value from "x" or execute some random code
Dictionary<int, int> xDict = new Dictionary<int, int> {
    {0, <some value you want x to be>},
    {1, <some value you want x to be>},
    //...
}

x = xDict[x];
相关问题