集合基类中的 IList 列表
本文关键字:IList 列表 基类 集合 | 更新日期: 2023-09-27 18:35:21
问题是关于实现奇怪属性的集合基类:
protected IList List { get; }
1) 什么是集合基类中的 Ilist 列表?...
2)它甚至没有初始化...那么如何访问它...
3) 何时使用此列表?
实际上,在类CollectionBase
内部,代码如下:
protected IList List
{
get
{
return this;
}
}
因此,它可以毫无错误地编译。
当派生类或CollectionBase
本身调用List
属性时,它将返回 list( this
) 的实例。如果要设计 CollectionBase
的子类,则可以在要获取类型实例的任何位置使用此属性作为 IList
。
1) IList
是一个接口,任何作为 IList 实现的类都可以由类的 List 属性返回。换句话说,你只知道它可以做IList的接口规范。
2)你不能,你必须初始化你的类,然后才能从类中获取属性List。IList 初始化为实现 IList 接口的类。
3)这取决于类的规范。我猜它会将当前列表中的项目作为 IList 返回。
这段代码甚至不会编译。自动实现的属性必须同时具有 get 和 set 访问器。
如果它位于抽象基类中并用抽象关键字标记,它将编译:
protected abstract IList List { get; }
然后由派生类来实现此属性的 getter。