2009-02-26 6 views

Antwort

2

Nicht mit einer switch-Anweisung, nein. Die Case-Labels müssen Kompilierzeitkonstanten sein.

Marc Gravell hat ein Switch-ähnliches Konstrukt, das Sie verwenden könnten, irgendwo ... Ich werde versuchen, es zu finden. Es kann jedoch nicht für Ihre spezielle Verwendung geeignet sein.

Ansonsten ist eine Sequenz von if/else if/else wenn [...]/else der Weg ist.

+0

Das war, wovor ich Angst hatte! Vielleicht werde ich stattdessen nur eine if-Anweisung verwenden. – macleojw

+0

Richtig, das ist in VB.NET nicht der Fall, da kann es eine Variable geben! – MrEdmundo

+0

Dieser? Hinweis Ich habe nur die Idee - nicht den Code ... Persönlich, ich würde nur uns "wenn" etc hier; -p http://stackoverflow.com/questions/156467/switch-pattern-matching-idea –

0

Da die Werte, die in einer case-Anweisung in C# verwendet werden, Konstanten sein sollten, ist es meines Erachtens nicht möglich, diese zur Laufzeit aus einer Konfigurationsdatei zu setzen.

0

Wie andere bereits gesagt haben, benötigt die switch-Anweisung die Werte zur Kompilierzeit, da die zugrunde liegende Hashtabelle zur Kompilierzeit erstellt wird. Wenn Sie Einträge haben, die zur Laufzeit bestimmt werden, würde ich Hashtabellen/Wörterbücher mit Befehlsmuster oder Delegaten verwenden, wenn ich Sie wäre.

Verwandte Themen