c# – property是readonly,但成员可以访问
为什么我可以像这样实现只读属性…
public IList<object> SelectedItems { get; } …当我使用该属性时,仍然可以使用其成员,如添加,删除等? 是不是应该只读“一路向下”? 解决方法
>这不是“只读”类型.它是一个可以检索值的属性(IList< object>),但不能将值设置为IList< object>的不同实例.因为没有物业设定者. 请注意,我要小心使用“readonly”一词. C#具有不同的,不同的含义和专用的 如果你想要一个“只读”列表,一个好的选择是返回 public IList<object> SelectedItems { get { return this.selected.AsReadOnly(); } } 如果你打算这样做,实际上返回ReadOnlyCollection< T>可能会更好.以及: public ReadOnlyCollection<object> SelectedItems { get { return this.selected.AsReadOnly(); } } 这样,用户就不会期望在结果列表中调用.Add()是安全的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |