Es scheint eine Menge Arbeit investiert worden zu sein, um Wege zu finden, wie eine der am wenigsten verwendeten C # -Syntaxen irgendwie besser aussehen oder besser funktionieren kann. Persönlich finde ich, dass die switch-Anweisung selten eine Verwendung wert ist. Ich würde dringend empfehlen, zu analysieren, welche Daten Sie testen und welche Endergebnisse Sie wünschen.
Angenommen, Sie möchten Werte in einem bekannten Bereich schnell testen, um festzustellen, ob es sich um Primzahlen handelt. Sie möchten vermeiden, dass Ihr Code die verschwenderischen Berechnungen durchführt, und Sie können eine Liste von Primzahlen in dem Bereich finden, den Sie online möchten. Sie können eine massive switch-Anweisung verwenden, um jeden Wert mit bekannten Primzahlen zu vergleichen.
Oder Sie können einfach eine Array-Karte mit Primzahlen erstellen und sofort Ergebnisse erzielen:
bool[] Primes = new bool[] {
false, false, true, true, false, true, false,
true, false, false, false, true, false, true,
false,false,false,true,false,true,false};
private void button1_Click(object sender, EventArgs e) {
int Value = Convert.ToInt32(textBox1.Text);
if ((Value >= 0) && (Value < Primes.Length)) {
bool IsPrime = Primes[Value];
textBox2.Text = IsPrime.ToString();
}
}
Vielleicht möchten Sie sehen, ob ein Zeichen in einer Zeichenfolge hexadezimal ist. Sie könnten eine ungly und etwas große switch-Anweisung verwenden.
Oder Sie können entweder reguläre Ausdrücke verwenden, um das Zeichen zu testen, oder die IndexOf-Funktion verwenden, um nach dem Zeichen in einer Zeichenfolge bekannter hexadezimaler Buchstaben zu suchen:
private void textBox2_TextChanged(object sender, EventArgs e) {
try {
textBox1.Text = ("0123456789ABCDEFGabcdefg".IndexOf(textBox2.Text[0]) >= 0).ToString();
} catch {
}
}
Angenommen, Sie möchten eine von drei verschiedenen Aktionen ausführen, abhängig von einem Wert im Bereich von 1 bis 24. Ich würde vorschlagen, eine Reihe von IF-Anweisungen zu verwenden. Und wenn dies zu komplex wurde (oder die Zahlen größer waren, z. B. 5 verschiedene Aktionen, abhängig von einem Wert im Bereich von 1 bis 90), verwenden Sie eine Aufzählung, um die Aktionen zu definieren und eine Array-Karte der Aufzählungen zu erstellen. Der Wert wird dann verwendet, um in die Array-Map zu indizieren und die Aufzählung der gewünschten Aktion abzurufen. Verwenden Sie dann entweder eine kleine Menge von IF-Anweisungen oder eine sehr einfache switch-Anweisung, um den resultierenden Enum-Wert zu verarbeiten.
Das Schöne an einer Array-Map, die einen Wertebereich in Aktionen konvertiert, ist, dass sie leicht per Code geändert werden kann. Mit fest verdrahtetem Code können Sie das Verhalten zur Laufzeit nicht einfach ändern, aber mit einer Array-Map ist dies einfach.