В C# типы Interface
и Interface<T>
(вы иногда увидите это как Interface`1
) являются разными типами. Они не имеют отношения внутри системы типов (если один интерфейс не расширяет другой). всегда List
одновременно. Это неверно для C#.
Вы можете переименовать интерфейсы, чтобы сделать это различие более четким:
IEventHandler<in TEvent> : IEventHandlerRaw
(это только для большей ясности объяснения. производственный код)