为什么当我从它派生出来的时候,我无法访问List <T>的类内部?
class NewList<T> : List<T>
为什么我不能访问它的内部像T[] _items
等?
为什么他们不受保护,但私人?
我应该使用这个组合吗?
它们是私人的,因为作者(微软)不打算让你访问它们,可能是出于安全原因。
你应该使用组合而不是继承。 让你的类直接暴露IList<T>
而不是List<T>
。
List<T>
不应该直接在公共API中公开(这实际上是在设计准则中指定的)。 它应该仅用作内部实现细节。
List<T>
不是为基类设计的。 您应该改为使用System.Collections.ObjectModel中的某个类。
为什么我不能访问它的内部像T [] _items等?
反射器说_items是私人的。 下划线表示一个私人成员
为什么他们不受保护,但私人?
在_items的情况下,Microsoft提供了公共的ToArray方法。 它返回_items。
链接地址: http://www.djcxy.com/p/53877.html上一篇: Why can't I access the class internals of List<T> when I derive from it?
下一篇: Classes with Collections as Properties vs. Classes Inheriting Collections