ClassTemp1
和ClassTemp2<T>
有什么区别?
我认为实现接口的每个类都应实现所有接口成员,但是ClassTemp2<T>
没有错误。为什么?
public interface ITemp : IComparable
{
void Temp();
}
public class ClassTemp1 : ITemp // Error
{
}
public class ClassTemp2<T> where T : ITemp // No Error
{
}
答案 0 :(得分:1)
类ClassTemp2
没有继承或实现任何接口。只有您的“参数类” T
实现了它。
换句话说:ClassTemp2
可能会对T
及其方法起作用,特别是在其自己的方法中调用Temp()
的{{1}}方法。
T
没有“拥有”或“实现” ClassTemp2
接口。只是,“参数类” ITemp
起作用了,而不是T
。
我希望有帮助。