Commutazione valore determinato a runtime in C #
-
09-09-2019 - |
Domanda
Ho un'istruzione case in C #. Vorrei scegliere i valori per i casi da un file di configurazione in fase di esecuzione. È possibile?
Soluzione
Non con uno switch, no. Le etichette di casi devono essere a tempo di compilazione costanti.
Marc Gravell ha un costrutto switch-come si potrebbe usare, da qualche parte ... cercherò di trovarlo. Può anche non essere adatto per il vostro particolare utilizzo però.
In caso contrario, una sequenza di if / else if / else if [...] / il resto è la strada da percorrere.
Altri suggerimenti
Per quanto i valori in uso in una dichiarazione caso in C # dovrebbero essere costanti non credo sia possibile impostare questi in fase di esecuzione da un file di configurazione.
Come altri hanno detto, l'istruzione switch ha bisogno dei valori al momento della compilazione in quanto la tabella hash sottostante è costruito in fase di compilazione. Se si dispone di voci che sono determinati in fase di esecuzione, vorrei utilizzare le tabelle hash / dizionari con il modello di comando o delegati, se fossi in te.