交错数组类型化属性

本文关键字:属性 类型化 数组 | 更新日期: 2023-09-27 18:35:37

假设我有这样的属性:

public int[] MyProperty
{
    get;
    set;
}

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

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

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

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

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

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

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

交错数组类型化属性

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