好吧,这让我发疯了。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”的定义,并且找不到接受“System.Collections.Generic.List”类型的第一个参数的扩展方法“IsReadOnly”(您是否缺少 using 指令还是汇编参考?)
怎么会这样?这不违反我们告诉所有人的关于不隐藏成员的规则吗?这里的实现细节是什么?