遗传继承如何在这种类型上发挥作用?

时间:2009-11-22 14:21:24

标签: c# generics inheritance

 public class Leaf : IComponent<Leaf>
 {
     //...
 }

这种类型的通用继承机制是否具有任何特定名称?

泛型的这种使用有什么好处?

4 个答案:

答案 0 :(得分:4)

据我所知,它没有特定的名称,

正如我所看到的以及所有仿制药一样,真正的好处是类型安全。通过使用通用接口,您可以保证实现的方法是类型安全的(至少在它们的定义中)。

在我看来,如果有可用的通用版本,没有真正的理由使用“普通”接口。

答案 1 :(得分:3)

接口不是继承的,它们是实现的。你所展示的不是继承机制;您正在实现碰巧具有泛型类型参数的接口。

至于好处,我同意AP Erebus;类型安全是主要的好处。

答案 2 :(得分:2)

至少在C ++的上下文中,有一个名字是“curiously recurring template pattern”。

答案 3 :(得分:0)

我已经看到这简称为自引用泛型。我知道这个问题是关于C#的,但我所知道的最好的例子是Java中的Enum类。枚举(例如,exampleEnum)隐式继承Enum<exampleEnum>。这允许基类实现需要知道最终封闭泛型类型的类型安全代码。