Ich weiß, Switch-Anweisungen sind nicht verfügbar in CodeDom
und wie Compiler mit Switch-Anweisung umgehen.Switch-Anweisung in CodeDom (Jump-Tabelle Stil)
So aus Leistungsgründen, wenn viele Fälle vorhanden sind, möchte ich nicht verwenden, wenn-sonst
Why the switch statement and not if-else?
Ist ist möglich, Code zu generieren für einen bestimmten Fall Liste eine Sprungtabelle zu simulieren.
switch(value) {
case 0: return Method0();
case 1: return Method1();
case 4; return Method4();
}
Würde produzieren:
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]();
}
Was ist der beste Weg, um die Terminliste und erzeugt ein Array zu analysieren, ob es Löcher in der Sequenz oder die Liste ist spärlich?