繁体   English   中英

只读列表<t>和二传手</t>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM