3

假设我有这样的财产:

public int[] MyProperty
{
    get;
    set;
}

调用代码可以随意更改数组的值,也可以替换数组本身。这可以通过隐藏 setter 来轻松防止,如下所示:

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

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

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

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

主数组不能修改,子数组可以。如果我想让子数组只读,以便调用代码可以更改元素,但不能更改数组,该怎么办?

如何仅使交错数组的元素可修改?这包括 3D 及更高版本。

4

1 回答 1

3

您应该使用ReadOnlyCollection<int[]>.

于 2012-05-29T23:28:00.260 回答