Jagged Array类型的属性

时间:2012-05-29 23:26:30

标签: c# .net arrays properties jagged-arrays

说我有这样的房产:

public int[] MyProperty
{
    get;
    set;
}

调用代码可以自由更改数组的值,但也可以替换数组本身。通过隐藏setter可以很容易地防止这种情况,如下所示:

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

这允许调用代码更改值,但不能将数组更改为其他值,或更改大小。

此模式适用于多维数组,但不适用于锯齿状数组。如果我有这个:

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

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

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

1 个答案:

答案 0 :(得分:3)

您应该使用ReadOnlyCollection<int[]>