Видя, что С# не может switch
для типа (который, как я понимаю, не был добавлен в качестве особого случая, потому что отношения is
означают, что может применяться более одного отдельного case
), существует ли лучший способ для имитации переключения на другой тип, кроме этого?
void Foo(object o)
{
if (o is A)
{
((A)o).Hop();
}
else if (o is B)
{
((B)o).Skip();
}
else
{
throw new ArgumentException("Unexpected type: " + o.GetType());
}
}