2012-05-29 19 views
3

说我有一个属性是这样的:交错数组类型的属性

public int[] MyProperty 
{ 
    get; 
    set; 
} 

调用代码是自由改变阵列,的值,而且还更换阵列本身。这可以很容易通过隐藏设定器,像这样能够防止:

public int[] MyProperty 
{ 
    get; 
    private set; 
} 

这允许调用代码改变的值,但它不能在阵列改变为不同的一种,或改变其尺寸。

此模式适用于多维数组,但不适合参差不齐的数组。如果我有这个:

public int[][] MyProperty 
{ 
    get; 
    private set; 
} 

主数组不能被修改,但子数组可以。如果我想让子数组只读,那么调用代码可以更改元素,但不是数组呢?

如何才能使锯齿形阵列的元素可修改?这包括3D和更高版本。

+0

http://msdn.microsoft.com/en-us/library/0fss9skc.aspx – SLaks

回答

3

您应该使用ReadOnlyCollection<int[]>

+0

+1非常好,你能不能详细说明一下在代码示例中使用它 –

+0

酷。有没有办法解决锯齿阵列的问题? –

+0

@肯德尔弗雷:不,没有。 – SLaks