我在c#项目中遇到错误。
我正在尝试声明并初始化一个int数组并为其提供初始值。
我正在尝试以下代码:
internal static int[, , , , , , , , , , , , , , , , , , , ,] int_17 = new int[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
,错误出现在这里:
int index = 1;
while (Class9.int_17[index] != num)
{
index++;
if (index > 21)
{
// some code here
}
}
答案 0 :(得分:3)
我不知道你是否打算做你正在做的事情。 你正在尝试初始化一个21 dims阵列!!!
如果您希望数组包含0-20之间的数字:
int[] arr = new int[21]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
[,] 适用于两个dims数组。
[,,] 是三个,如此。
new int[sizeOfDim]
或new int[sizeOfFirstDim,sizeOfSecondDim]
如果要在初始化部分中提供初始值,请使用如上所示的大括号进行操作。
答案 1 :(得分:0)
虽然你的代码可以编译而不会给你任何警告,但你可能意味着以不同的方式创建一个数组。用于初始化填充数组的经典数组语法是:
internal static int[] int_17 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
同样地,你可以通过以下方式以更加程序化的方式做到这一点:
internal static int[] int_17 = new int[20];
for(int i = 1; i<=20; i++)
{
int_17[i-1] = i;
}
答案 2 :(得分:-1)
我认为你想要的是:
internal static int[] int_17 = new int [] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
. . . .
int index = 0; // the index must start with 0, not 1 as in your original code
while (Class9.int_17[index] != num)
{
index++;
if (index > 21) //0x21 is a hexadecimal number which means 33
{
....
....