集合基类中的 IList 列表

本文关键字:IList 列表 基类 集合 | 更新日期: 2023-09-27 18:35:21

问题是关于实现奇怪属性的集合基类:

protected IList List { get; }

1) 什么是集合基类中的 Ilist 列表?...

2)它甚至没有初始化...那么如何访问它...

3) 何时使用此列表?

集合基类中的 IList 列表

实际上,在类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。