gpt4 book ai didi

C#:微软为什么不让 ReadOnlyCollection 继承自 ReadOnlyCollectionBase?

转载 作者:可可西里 更新时间:2023-11-01 08:34:04 24 4
gpt4 key购买 nike

简单的说,微软定义了一个ReadOnlyCollectionBase , 但没有将其用作 ReadOnlyCollection<T> 的基类当听起来很明显应该是这样的时候。

我是不是漏掉了什么?我的意思是,是否有充分的理由将此类作为基类?

最佳答案

可能是因为它不是通用的并且实现了 ICollectionReadOnlyCollection<T>是通用的并实现了 ICollection<T> .注意 ICollection<T>不执行 ICollection .在那topic :

ICollection<T> seems like ICollection, but it’s actually a very different abstraction. We found that ICollection was not very useful. At the same time, we did not have an abstraction that represented an read/write non-indexed collection. ICollection<T> is such abstraction and you could say that ICollection does not have an exact corresponding peer in the generic world; IEnumerable<T> is the closest.

来自同一篇文章:

ReadOnlyCollection<T> is a much better ReadOnlyCollectionBase. It’s in System.Collections.ObjectModel namespace.

实际上,ReadOnlyCollection<T>ReadOnlyCollectionBase在泛型领域。

注意,类似地,IList<T>不执行 IList .

一般来说,前泛型类不能用作泛型类的有用抽象(IEnumerable 除外)。

关于C#:微软为什么不让 ReadOnlyCollection<T> 继承自 ReadOnlyCollectionBase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com