Как наследовать два одинаковых интерфейса с разными параметрами? - C#

Узнай цену своей работы

Формулировка задачи:

Как наследовать "IEquatable<T1>" и "IEquatable<T2>" ? (C#)
public class A<T1, T2> : IEquatable<T1>, IEquatable<T2>
    where T2 : A<T1, T2>
{
    public T1 Data;
    public T2 Link;
    public A() { }
    public A(T1 d, T2 l = null) { Data = d; Link = l; }
    public bool Equals(T1 other) { return Equals(Data, other); }
    public bool Equals(T2 other) { return Equals(other.Data); }
}
Как мне об'яснить компилятору, что "T1" и "T2" никогда не будут одинаковы ?

Решение задачи: «Как наследовать два одинаковых интерфейса с разными параметрами?»

textual
Листинг программы
internal interface IABC{}
 
    internal interface IDEF{}
 
    internal interface IABCDEF : IDEF, IABC{}
 
    public interface IA<in T>
    {
        void Go(T t);
    }
 
    public class AA1<T1, T2> : IA<T1>
    {
        public void Go(T1 t1){}
        public void Go(T2 t2){}
    }
 
    public class AA2<T1, T2> : AA1<T1, T2>, IA<T2>{}
 
private static void Main(string[] args)
        {
            IA<IABCDEF> crazy = new AA1<IDEF, IABC>();
            crazy.Go(null);
 
            Console.WriteLine("Press any key ...");
            Console.ReadKey();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы