这里是抛出一个编译器错误,我一个示例代码,我不知道如何解决它。错误是“局部变量NumArray可能无法访问之前被初始化”。我知道,我使用的旧VB utils的CopyArray方法。想修正这个错误,并有解决方案使用C#Array.Copy方法。
int[] numArray = { };
for (int i = 0; i <= num7; i++)
{
If(!somecondition)
{
path = @"no";
}
else
{
path = @"yes";
index++;
((int[])Utils.CopyArray(numArray, new int[index + 1]))[index] = i;
}
}
您正确声明numArray
。正确的方法是:
int[] numArray = new int[] {};
在C#中数组是对象,因此当初始化时,他们必须调用构造函数的。
这个问题可能是你忘了处理CopyArray
的返回值是新的数组。
因此,更改此行
((int[])Utils.CopyArray(numArray, new int[index + 1]))[index] = i;
为此:
numArray= (int[]) Utils.CopyArray(numArray, new int[index + 1]);
numArray[index] = i;
这是假设Utils.CopyArray
做什么模样。虽然林不知道为什么有人甚至会使用,当我们媒体链接有Array.Copy
。