List.IsReadOnly 在哪里?

发布于 2025-01-04 00:52:42 字数 231 浏览 1 评论 0原文

在 .Net Framework 中,List 实现 ICollection 接口。但是,在 Visual Studio 中查看 List 类时,我没有看到 IsReadOnly 属性,该属性应该位于 ICollection 接口中。

一个类怎么可能实现一个接口...但没有真正实现它?

In the .Net Framework, List<T> implements the ICollection<T> interface. However when looking at the List class in Visual Studio, I see no IsReadOnly property, which is supposedly in the ICollection<T> interface.

How is it possible for a class to implement an interface... but not really implement it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

﹉夏雨初晴づ 2025-01-11 00:52:42

它使用显式接口实现。例如:

public interface IFoo 
{
    void Bar();
}

public Foo : IFoo
{
    // Note the lack of public here
    void IFoo.Bar() {}
}

It uses explicit interface implementation. For example:

public interface IFoo 
{
    void Bar();
}

public Foo : IFoo
{
    // Note the lack of public here
    void IFoo.Bar() {}
}
太阳哥哥 2025-01-11 00:52:42

IsReadOnly is listed under the Explicit Interface Implementations section of the documentation.

薔薇婲 2025-01-11 00:52:42

它是使用显式接口实现实现的。仅当您使用列表作为特定接口时才能看到实现:

List<int> x = new List<int>();

bool b1 = x.IsReadOnly; // not accessible

ICollection<T> y = x;

bool b2 = y.IsReadOnly; // accessible

It's made using an explicit interface implementation. You can only see the implementation when you use the list as that specific interface:

List<int> x = new List<int>();

bool b1 = x.IsReadOnly; // not accessible

ICollection<T> y = x;

bool b2 = y.IsReadOnly; // accessible
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文