Сделайте очень длинный оператор switch более читабельным - PullRequest
0 голосов
/ 02 июня 2018

Я написал оператор switch для более чем 11 случаев, подобных следующему ...

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

Проблема в том, что я нахожу, написав код таким образом, он выглядит довольно некрасивым и трудно поддерживать , есть ли другой способ отформатировать его, чтобы сделать его более читабельным ?

(ПРИМЕЧАНИЕ. Если вопрос не по теме или что-то не такпожалуйста, скажите мне, что это, прежде чем понизить / сообщить об этом)

1 Ответ

0 голосов
/ 02 июня 2018

Ваш текущий код не компилируется, я думаю, вы имели в виду:

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];
...