Wygląda na to, że włożono wiele pracy w znalezienie sposobów na uzyskanie jednej z najmniej używanych C # składni, aby wyglądały lepiej lub działały lepiej. Osobiście uważam, że instrukcja switch jest rzadko warta użycia. Zdecydowanie zalecam przeanalizowanie danych, które testujesz, i oczekiwanych wyników końcowych.
Powiedzmy na przykład, że chcesz szybko przetestować wartości w znanym zakresie, aby sprawdzić, czy są to liczby pierwsze. Chcesz uniknąć marnotrawstwa obliczeń i możesz znaleźć listę liczb pierwszych w zakresie, który chcesz online. Możesz użyć ogromnej instrukcji switch, aby porównać każdą wartość ze znanymi liczbami pierwszymi.
Lub możesz po prostu stworzyć mapę tablic liczb pierwszych i uzyskać natychmiastowe wyniki:
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();
}
}
Może chcesz sprawdzić, czy znak w ciągu jest szesnastkowy. Możesz użyć nieprzyjemnej i nieco dużej instrukcji switch.
Możesz też użyć wyrażeń regularnych do przetestowania znaku lub użyć funkcji IndexOf do wyszukania znaku w ciągu znanych liter szesnastkowych:
private void textBox2_TextChanged(object sender, EventArgs e) {
try {
textBox1.Text = ("0123456789ABCDEFGabcdefg".IndexOf(textBox2.Text[0]) >= 0).ToString();
} catch {
}
}
Powiedzmy, że chcesz wykonać jedną z 3 różnych akcji w zależności od wartości, która będzie w zakresie od 1 do 24. Sugerowałbym użycie zestawu instrukcji JEŻELI. A jeśli stanie się to zbyt skomplikowane (Lub liczby byłyby większe, takie jak 5 różnych akcji w zależności od wartości z zakresu od 1 do 90), użyj enum, aby zdefiniować akcje i stworzyć mapę tablicową wyliczeń. Wartość zostanie następnie wykorzystana do zindeksowania do mapy tablic i uzyskania wyliczenia żądanej akcji. Następnie użyj małego zestawu instrukcji IF lub bardzo prostej instrukcji switch, aby przetworzyć wynikową wartość wyliczenia.
Zaletą mapy tablic, która konwertuje zakres wartości na działania, jest to, że można go łatwo zmienić za pomocą kodu. Dzięki kodowi przewodowemu nie można łatwo zmienić zachowania w czasie wykonywania, ale z mapą tablic jest to łatwe.