是否有更好的方法確保以下Test
類的不變性,而不必在每次獲得屬性Array
獲得處理時都返回數組的新深度副本(請假設DeepCopy()
是一種擴展方法,該方法會創建新的深度複製的數組)?公共屬性和不變性
public class Test
{
private SomeObject[] _array;
public SomeObject[] Array
{
get { return (_array.DeepCopy();) }
}
public Test(SomeObject[] array)
{
_array = array.DeepCopy();
}
}
這會在初始化時創建一個深層副本,而每次訪問該屬性時都會創建一個深層副本。有沒有更好的方法來實現不變性?
你可能是指BCL,而不是CLR ...... –
@Thomas:當然可以。定影... – Richard