Длинные характеристики переключателя часто осуждаются. Решение заключается в использовании полиморфизма. Однако что, если вещь, которую я включаю, не является кодом типа? Я хотел бы заменить оператор switch чем-то вроде этого ...
public void HandleString(string s = "Hello")
{
...
}
public void HandleString(string s = "Goodbye")
{
...
}
...
HandleString("Hello"); // results in the first method being called.
Это заменит следующее ...
string s = "Hello";
switch(s)
{
case "Hello":
...
break;
case "Goodbye":
...
break;
default;
break;
}
Есть идеи? Теоретически, я думаю, что вы могли бы полностью отказаться от операторов if / switch и просто вызывать методы, которые автоматически связаны на основе значения выражения.