gpt4 book ai didi

c# - 为什么 ICollection 不包含 Add 方法?

转载 作者:太空狗 更新时间:2023-10-29 20:34:33 25 4
gpt4 key购买 nike

<分区>

正如标题,有谁知道为什么ICollection接口(interface)不包含 Add 方法?通用版本似乎很奇怪,ICollection<T> , 有一个 Add但是ICollection才不是。任何对此有更深入了解的人都会非常有帮助。

至于我为什么关心 - 不幸的是,构建 SharePoint 的开发人员从未了解过泛型,因此 API 中的每个集合都是基于 ICollection 的非泛型集合。 .我想将几个扩展方法附加到 ICollection这涉及到添加到集合中等等,但这似乎是不可能的(至少在没有反射(reflection)的情况下是不可能的)。

编辑:

很多人推测原因是因为ICollection.Add需要 Object ,因此不会是类型安全的。事实并非如此。 IList 一个Add采用 Object 的方法.您只需要在采用 Object 的方法中进行类型检查和强制转换。 .

数组实现的参数ICollection因此它不能有 Add也不装水。如果ICollection有一个Add方法,它只需要在数组上显式实现并抛出异常(正如当前数组实现的许多方法所做的那样)。

我真的希望有人能引用其中一位设计师的解释。

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