可能重复:
How does List<T> make IsReadOnly private when IsReadOnly is an interface member?C#列表<T>隐藏属性?
好了,这是推动我坚果。 List<T>
执行IList<T>
。然而,
IList<int> list = new List<int>();
bool b = list.IsReadOnly;
bool c = ((List<int>)list).IsReadOnly; // Error
错误是:
“System.Collections.Generic.List”不包含关于“IsReadOnly”和没有扩展方法的定义“IsReadOnly”接受类型的第一个参数'System.Collections.Generic.List'可以找到(你是否缺少使用指令或程序集引用?)
这怎么可能?这是否违反了我们告诉大家的关于不隐藏成员的规则?这里的实现细节是什么?
要进入细节它能够更好地利用反射的 –