Есть ли лучшая альтернатива, чем эта, чтобы «включить тип»?

Видя как C # не могупереключатель на тип (который я собираю не был добавлен в качестве особого случая, потому что отношения - это означает, что более чем один отдельныйдело может применяться), есть ли лучший способ для имитации переключения типа, чем этот?

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());
    }
}

Ответы на вопрос(26)

Ваш ответ на вопрос