List <t> .IsReadOnly?</t>在哪里

时间:2012-02-10 15:52:39

标签: .net list interface

在.Net Framework中,List<T>实现了ICollection<T>接口。但是,在Visual Studio中查看List类时,我看不到IsReadOnly属性,这应该位于ICollection<T>接口中。

一个类如何实现一个接口......但是没有真正实现它?

3 个答案:

答案 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