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

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

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

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

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

textual
Листинг программы
  1. internal interface IABC{}
  2.  
  3.     internal interface IDEF{}
  4.  
  5.     internal interface IABCDEF : IDEF, IABC{}
  6.  
  7.     public interface IA<in T>
  8.     {
  9.         void Go(T t);
  10.     }
  11.  
  12.     public class AA1<T1, T2> : IA<T1>
  13.     {
  14.         public void Go(T1 t1){}
  15.         public void Go(T2 t2){}
  16.     }
  17.  
  18.     public class AA2<T1, T2> : AA1<T1, T2>, IA<T2>{}
  19.  
  20. private static void Main(string[] args)
  21.         {
  22.             IA<IABCDEF> crazy = new AA1<IDEF, IABC>();
  23.             crazy.Go(null);
  24.  
  25.             Console.WriteLine("Press any key ...");
  26.             Console.ReadKey();
  27.         }

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


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

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

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы