只读集合类型属性实现

IReadOnlyCollection 接口

表示一个强类型的、只读的元素的集合

此接口没有定义集合操作的Add方法、索引器因此无法对集合元素进行增加和修改。

常见的List、Dictionary、Queue、Stack都实现了此接口

使用IReadOnlyCollection实现集合的只读

    public class ReadonlyCollectionDemo
    {
        private readonly List<int> _items = new List<int>();

        public IReadOnlyCollection<int> items => _items;

        public void AddItem(int item)
        {
            _items.Add(item);
        }

    }

以上只读集合类型属性的实现,体现了接口隔离原则:客户端不应该被强迫依赖它不需要的接口,客户端(调用者)针对IReadOnlyCollection接口编程,不会获取到它不应该依赖的Add方法、索引器等信息。

IReadOnlyCollection 官方文档

原文地址:https://www.cnblogs.com/Saints/p/12674785.html