Да, несколько идей:
- Вы, конечно, не можете делать то, что пытаетесь сделать.Компилятор дал понять:
- Вам определенно не нужно делать то, что вы пытаетесь сделать.
Generic
- это type-less
наследование поведения.Реализация 2 type-full
универсальных интерфейсов одного типа не имеет смысла . - Вы не представили исходную проблему, которую пытаетесь решить.Если вы это сделаете, мы могли бы помочь вам с дизайном.
ОБНОВЛЕНИЕ
Они не одного и того же вида, один г идругой это г.Подумайте об IMessageHandler и IMessageHandler в классе, реализующем и Handle (MessageA), и Handle (MessageB)
В реальном мире вы бы этого не сделали.Также это может привести к многочисленным проблемам.Допустим, у нас есть:
interface IFactory<T>
{
T Create();
}
Тогда, если я реализую два:
class DontDoIt : IFactory<A>, IFactory<B>
{
A Create();
B Create(); // won't compile
}
Это не скомпилируется, поскольку методы отличаются только в типе возвращаемого значения.Теперь вы, возможно, можете преодолеть это путем явной реализации интерфейсов, но, как я сказал , это просто не имеет смысла из принципов проектирования .