Как наследовать два одинаковых интерфейса с разными параметрами? - C#
Формулировка задачи:
Как наследовать "IEquatable<T1>" и "IEquatable<T2>" ? (C#)
Как мне об'яснить компилятору, что "T1" и "T2" никогда не будут одинаковы ?
Листинг программы
- 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); }
- }
Решение задачи: «Как наследовать два одинаковых интерфейса с разными параметрами?»
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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д