为什么即使没有实现 setter 也可以设置二维数组?
这是我的代码。
public static void Main()
{
var obj = new TestObj();
obj.qwe[0, 0] = 6;
obj.asd = 7; //error
Console.WriteLine(obj.qwe[0, 0]); //6
}
public class TestObj
{
public int[,] qwe { get; } = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
public int asd { get; } = 4;
}
Run Code Online (Sandbox Code Playgroud)
为什么即使没有实现 setter 也可以设置二维数组?
因为您没有设置属性,所以您正在更新数组中的一个项目。
例如,这不会编译:
obj.qwe = new int[0, 0];
Run Code Online (Sandbox Code Playgroud)
在您的代码中,您正在调用get以获取对数组的引用,并更新索引 0, 0 处的项目:
obj.qwe[0, 0] = 6;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |