Как наследовать два одинаковых интерфейса с разными параметрами? - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д