[英]IReadOnlyList<T> and setter
当属性的属性是IReadOnlyList
但它有一个 setter 时,这意味着什么? 我的困惑是,如果 List 是只读的,那我们为什么需要 setter?
public IReadOnlyList<string> FilteredProductId { get; set; }
你是对的,他们保护FilteredProductId
的内容,而不是 instane 本身,这很奇怪。 我本来期望至少有一个私人二传手。 这是一种防止使用该代码的人做他不应该做的事情的设置。
这是什么意思? 好吧,FilteredProductId 没有得到完全保护。 但是,完全保护(实例和内容)可能并不重要。 只是缺少Add()
function 是防止意外修改的严重保护。 没有人会意外地在列表中添加任何内容。
并创建一个新的只读集合并在那里分配它? 这也有关系。 也不是大多数人偶然做的事情。 所以保护实际上可能就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.