类型参数作为约束 where T : U 的作用
public class ClassA {
}
public class ClassB : ClassA {
}
public class TTSS<T> {
public void Add<U>(TTSS<U> items) where U : T {
Console.WriteLine(items is TTSS<T>);
}
}
TTSS<ClassA> ll = new TTSS<ClassA>();
TTSS<ClassB> lb = new TTSS<ClassB>();
ll.Add<ClassA>(ll); //返回true;
ll.Add<ClassB>(lb); //返回false;
从以上返回结果可以发现,TTSS<U>和TTSS<T>并不是同一个类型,能感觉出这种微妙的差异,但是目前还不清楚有什么实际应用场景;
浙公网安备 33010602011771号