有没有更好的方法来确保下面的Test类的不变性,而不会在每次访问属性Array时返回一个新的数组深度副本(请假设DeepCopy()是一个扩展方法,它制作了一个新的数组深度副本)?public class Test private SomeObject[] _array;
public SomeObject
假设我的IEnumerable<int>属性有List<int>字段支持,所以我可以在类中修改集合,但是它公开地公开为只读。,您可以轻松地将从属性中检索到的对象转换回List<int>并修改它:var bar = (List<int>)foo.Bar;问题是AsReadOnly():
公共IEnumerable栏{ get {