C# 您能否定义一个接口,使实现它的类必须包含一个也属于该类的成员?
本质上,我想做的是实现一个类,该类可以包含对相同类型实例的引用列表。如下所示:C# 您能否定义一个接口,使实现它的类必须包含一个也属于该类的成员?,c#,.net,oop,inheritance,C#,.net,Oop,Inheritance,本质上,我想做的是实现一个类,该类可以包含对相同类型实例的引用列表。如下所示: interface IAccessibilityFeature { List<IAccessibilityFeature> Settings { get; set; } } class MyAccess : IAccessibilityFeature { List<MyAccess> Settings { get; set; } } 接口IAccessibilityFeat
interface IAccessibilityFeature
{
List<IAccessibilityFeature> Settings { get; set; }
}
class MyAccess : IAccessibilityFeature
{
List<MyAccess> Settings { get; set; }
}
接口IAccessibilityFeature
{
列表设置{get;set;}
}
类MyAccess:IAccessibilityFeature
{
列表设置{get;set;}
}
我知道这不会编译,因为接口明确指出我的
设置
必须是列表
类型。我想要的是一些关于如何正确实现我在MyAccess
课程中所要做的事情的指导。这可以通过以下方法实现:
interface IAccessibilityFeature<T>
{
List<T> Settings { get; set; }
}
class MyAccess : IAccessibilityFeature<MyAccess>
{
List<MyAccess> Settings { get; set; }
}
接口IAccessibilityFeature
{
列表设置{get;set;}
}
类MyAccess:IAccessibilityFeature
{
列表设置{get;set;}
}
试试这个:
interface IAccessibilityFeature<T> where T : IAccessibilityFeature<T>
{
List<T> Settings { get; set; }
}
class MyAccess : IAccessibilityFeature<MyAccess>
{
List<MyAccess> Settings { get; set; }
}
接口IAccessibilityFeature,其中T:IAccessibilityFeature
{
列表设置{get;set;}
}
类MyAccess:IAccessibilityFeature
{
列表设置{get;set;}
}
看看Cheers Tom,有趣的阅读:)请注意,当前可见的答案实际上都不要求实现类提供自己作为类型参数T。最终由您强制执行严格的要求,类型系统无法为您执行。