【发布时间】:2011-04-20 06:26:18
【问题描述】:
我有一个包含List<Item> 的类我在返回这个的类上有一个getter。我可以做些什么来确保调用的用户不能修改返回的列表? (因为它是引用类型 - 我相信对返回引用的更改会影响存储在源对象中的列表)
【问题讨论】:
-
如果您放宽了必须实际返回 List 的限制,您可以简单地返回
IEnumerable<T>,它具有.Count()和.ElementAt()方法,如果您枚举,则以 O(1) 速度执行集合实现IList<T>。在这种情况下,用户只有在明确投出它时才能进入列表,这将违反您的公共合同。
标签: c# .net properties readonly modifier