在 C# 中定义一个实在只读的 List

C# 中的 readonly
关键字表示类中的字段只同目的在于概念时候如故构造方法中开头化。普通品种的数量完全可以达成预期的效用,可是在目标或者列表中,要想达到只读的功用,只用一个
readonly 关键字是不得以的。当您把一个 List 用 readonly
修饰,在其他类中如故可以使用 Add,Remove
方法来改变它。可是可能你想要的只读属性是:除非在时下类中修改这一个列表的
item,才不想被其他类做另外修改!

下边那多少个示例就是用 readonly 关键字修饰的一个
List,它的始末项目仍旧可以在另外类中添加或删除:
图片 1

就是封装成只读属性,仍可以在任何类中操作:
图片 2

只是你可以将性能的品类改为 IEnumerable<T>
,这样就足以达到想要的效益。因为 IEnumerable<T> 类没有 Add, Remove
方法,List<T> 类继承 IEnumerable<T> 类,在 List<T>
类中新增的 Add, Remove 等艺术:
图片 3

比方你想创立一个截然只读的特性,即便在脚下类中都不可以修改它的
item,你可以行使 ReadOnlyCollection<T> :
图片 4

在 .NET 4.5 中,List<T> 继承了 IReadOnlyList<T> 和
IReadOnlyCollection<T>,给了俺们一种更简便的写法,同样可以达到上述成效:

图片 5

相关文章