加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ReadOnlyCollection如何隐藏添加和删除方法

发布时间:2020-12-15 18:30:39 所属栏目:百科 来源:网络整理
导读:ReadOnlyCollection T实现ICollection T具有添加和删除等方法的界面.我知道如何使用属性从Intellisense隐藏方法,但是如果我尝试使用这些方法,怎么可能导致实际的编译错误? (顺便说一句,我知道在ROC上调用Add和Remove是没有意义的,这是一个关于导致继承的mem
ReadOnlyCollection< T>实现ICollection< T>具有添加和删除等方法的界面.我知道如何使用属性从Intellisense隐藏方法,但是如果我尝试使用这些方法,怎么可能导致实际的编译错误?

(顺便说一句,我知道在ROC上调用Add和Remove是没有意义的,这是一个关于导致继承的memebers的编译错误的问题,而不是使用正确的数据结构).

解决方法

它们是用 explicit interface implementation实现的,如下所示:
void ICollection<T>.Add(T item) {
    throw NotSupportedException();
}

该方法仍然是可调用的,但仅当您将对象视为ICollection< T>时.例如:

ReadOnlyCollection<int> roc = new ReadOnlyCollection<int>(new[] { 1,2,3 });
// Invalid
// roc.Add(10);

ICollection<int> collection = roc;
collection.Add(10); // Valid at compile time,but will throw an exception

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读