Вы можете использовать co- и контравариантность .
Проблема заключается в том, что Cmd не является базовым классом Cmd.
Cmd
] См. Этот недавний вопрос для более подробного ответа: Проблема с наследованием обобщенных возможностей C #