在.Net Framework中,List<T>
实现了ICollection<T>
接口。但是,在Visual Studio中查看List类时,我看不到IsReadOnly
属性,这应该位于ICollection<T>
接口中。
一个类如何实现一个接口......但是没有真正实现它?
答案 0 :(得分:5)
它使用explicit interface implementation。例如:
public interface IFoo
{
void Bar();
}
public Foo : IFoo
{
// Note the lack of public here
void IFoo.Bar() {}
}
答案 1 :(得分:2)
IsReadOnly
列在the documentation的显式接口实现部分下。
答案 2 :(得分:1)
使用显式接口实现。当您将列表用作特定接口时,您只能看到实现:
List<int> x = new List<int>();
bool b1 = x.IsReadOnly; // not accessible
ICollection<T> y = x;
bool b2 = y.IsReadOnly; // accessible