集合基类中的IList列表?

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

protected IList List { get; }

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

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

3)何时使用此列表?

0
额外 编辑
意见: 1
何时使用该财产? ...目的是什么?
额外 作者 Sana.91,
那么它的一个 get 属性名称为 List ,您可以通过 instancename.List
额外 作者 V4Vendetta,
我想你在谈论 public abstract class CollectionBase:IList,ICollection,IEnumerable
额外 作者 V4Vendetta,

3 答案

这段代码甚至不会编译。自动实现的属性必须同时具有get和set访问器。

如果它位于抽象基类内部并且用abstract关键字标记,它将进行编译:

protected abstract IList List { get; }

然后由派生类来实现此属性的getter。

0
额外
这不是代码...它是一个属性的集合基类decleration!
额外 作者 Sana.91,
请再次阅读这个问题...我只是问在集合基类中IList列表属性的目的...这是一个.NET类..问题没有代码
额外 作者 Sana.91,
达林季米特洛夫:谢谢..多数民众赞成我是问..
额外 作者 Sana.91,
我不明白你的意思。它看起来像一个代码给我。
额外 作者 Darin Dimitrov,
目的是定义一个名为 List 的属性,该属性的类型为 IList 。而且 List 属性的名称与 List 泛型类无关,因此不应与此混淆。这只是一个名字。可能被称为任何东西。
额外 作者 Darin Dimitrov,
@DarinDimitrov我认为它为他正在讨论的课程发布的元数据(在F12上)
额外 作者 V4Vendetta,
如果这在元数据中,那么实现将是一个私人集合,您从外部看不到
额外 作者 benPearce,

1)IList是一个接口,任何实现IList的类都可以被你的类的List属性返回。换句话说,你只知道它可以做IList的接口规范。

2)你不能,你必须初始化你的课程,然后才能从课堂上获得属性列表。 IList被初始化为实现IList接口的类。

3)这取决于班级的规格。我猜想它会以IList的形式返回当前列表中的项目。

0
额外
因此,它只是名为 List 的属性...它不必被List泛型类或一些事情弄糊涂了吗?
额外 作者 Sana.91,
对,那是正确的
额外 作者 Peter,

实际上,在 CollectionBase 类中,代码如下:

protected IList List
{
    get
    {
        return this;
    }
}

所以,它可以编译没有错误。

当派生类或 CollectionBase 本身调用 List 属性时,它将返回列表实例( this )。如果您正在设计 CollectionBase 的子类,则无论您想要将类型的实例作为 IList 获取,都可以使用此属性。

0
额外
@Dhananjay LOL,他在 collection base class 中说过,因此我检查了 CollectionBase 的源代码。:)
额外 作者 Kirin Yao,
好回答!你怎么知道这件事的?它在哪里记录?
额外 作者 Dhananjay,