Я знаю, что операторы переключения недоступны в CodeDom
и как компиляторы работают с оператором переключения.
Поэтому по соображениям производительности, когда присутствует много случаев, я не хочу использовать If-else
Почему оператор switch, а не if-else?
Можно сгенерировать код для имитации таблицы переходов для заданного списка дел.
switch(value) {
case 0: return Method0();
case 1: return Method1();
case 4; return Method4();
}
Произведет:
private delegate object Method();
Method[] _jumpTable = new Method[] { Method0, Method1, null, null, Method4 };
private object GetValue(int value)
{
if (value < 0 || value > 4)
return null;
return _jumpTable[value]();
}
Как лучше всего проанализировать список дел и сгенерировать массив, если в последовательности есть дыры или список разрежен?