我有一个私人HashSet< string>这是只读属性的后备字段,它应返回只读集合,以便调用者无法修改集合.所以我试着:
public class MyClass { private readonly HashSet<string> _referencedColumns; public ICollection<string> ReferencedColumns { get { return new ReadOnlyCollection<string>(_referencedColumns); } }
这不能编译,因为ReadOnlyCollection接受IList< T>.这不是由HashSet< T>实现的.还有另一个包装我可以用来拯救我复制这些物品吗?为了我的目的,只需返回实现ICollection< T>的东西即可. (而不是IList< T>)由HashSet< T>实现.