public byte[][,] Shapes =
{
{
{1,1},
{1,1}
},
{
{1},
{1},
{1},
{1}
},
{
{0,0,1},
{1,1,1}
}
};
Run Code Online (Sandbox Code Playgroud)
我收到此错误:"数组初始化程序只能在变量或字段初始化程序中使用.请尝试使用新表达式."
我能做到这一点......
public class Shape
{
public byte[][,] Shapes;
public Shape()
{
Shapes = new byte[3][,];
Shapes[0] = new byte[2, 2];
Shapes[0][0, 0] = 1;
Shapes[0][0, 1] = 1;
Shapes[0][1, 0] = 1;
Shapes[0][1, 1] = 1;
Shapes[1] = new byte[1, 4];
Shapes[1][0, 0] = 1;
Shapes[1][0, 1] = 1;
Shapes[1][0, 2] = 1;
Shapes[1][0, 3] = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
但这使我很难为我的程序添加更多形状.
我的初始化程序错了吗?如果我不允许这样做,最简单的方法是什么呢?
这对我有用:
public byte[][,] Shapes = new byte[3][,]
{
new byte[,] { {1,1}, {1,1} },
new byte[,] { {1}, {2}, {3}, {4} },
new byte[,] { {0,0,1}, {1,1,1} }
};
Run Code Online (Sandbox Code Playgroud)
数组初始化程序语法({ ... })只能用于初始化字段或变量.
要在外部数组中创建数组,您需要使用常规数组创建语法.
new []在内部之前添加{ ... }以创建隐式类型数组.
由于您正在处理bytes和多维数组,因此您可能需要通过编写来明确指定某些类型new byte[,] { ... }.
| 归档时间: |
|
| 查看次数: |
7784 次 |
| 最近记录: |