首页 > 解决方案 > 每个继承接口的类不应该实现所有接口成员吗?

问题描述

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
{

}

标签: c#genericsinterface

解决方案


该类ClassTemp2没有继承或实现任何接口。只是你的“参数类”T实现它。

换句话说:ClassTemp2可以用它的方法做一些事情T,特别是调用它自己的Temp()方法T中的方法。

ClassTemp2不“拥有”或“实现”ITemp接口。只是,“参数类”T会,而不是ClassTemp2.

我希望,这有帮助。


推荐阅读