您是否可以定义一个接口,以便实现它的类必须包含同样属于该类的成员?

时间:2012-02-01 01:51:04

标签: c# .net oop inheritance

基本上我想要做的是实现一个类,它可以包含对同一类型实例的引用列表。如下所示:

interface IAccessibilityFeature
{
    List<IAccessibilityFeature> Settings { get; set; }
}

class MyAccess : IAccessibilityFeature
{
    List<MyAccess> Settings { get; set; }
}

我知道这不会编译,因为界面明确说我的Settings必须是List<IAccessibilityFeature>类型。我所追求的是关于在MyAccess课程中实现我想要做的正确方法的一些指导。

2 个答案:

答案 0 :(得分:14)

试试这个:

interface IAccessibilityFeature<T> where T : IAccessibilityFeature<T>
{
    List<T> Settings { get; set; }
}

class MyAccess : IAccessibilityFeature<MyAccess>
{
    List<MyAccess> Settings { get; set; }
}

答案 1 :(得分:3)

这可以通过以下方式完成:

interface IAccessibilityFeature<T>
{
    List<T> Settings { get; set; }
}

class MyAccess : IAccessibilityFeature<MyAccess>
{
    List<MyAccess> Settings { get; set; }
}