我收到错误 - 在以下代码中未处理NullReferenceException。我想从字符串pt中提取字符。但是我在for循环之外得到了正确的值,但内部却没有。
ArrayList list = read();
int N = Values.N;
string pt = Values.PlainText;
MessageBox.Show(""+pt.Length+" "+pt[0]);
int count = 0;
char[][][] array = new char[6][][];
for(int i=0;i<6;i++)
{
for(int j=0;j<N;j++)
{
for(int k=0;k<N;k++)
{
if (count < pt.Length)
{
array[i][j][k] = 'r';
//array[i][j][k] = pt[count];
//count++;
}
else
{
array[i][j][k] = 'x';
}
}
}
}
答案 0 :(得分:7)
您必须初始化数组的第二级和第三级,不能只分配元素。所以:
ArrayList list = read();
int N = Values.N;
string pt = Values.PlainText;
MessageBox.Show(""+pt.Length+" "+pt[0]);
int count = 0;
char[][][] array = new char[6][][];
for(int i=0;i<6;i++)
{
for(int j=0;j<N;j++)
{
array[i] = new char[N][]; // <---- Note
for(int k=0;k<N;k++)
{
array[i][j] = new char[N]; // <---- Note
if (count < pt.Length)
{
array[i][j][k] = 'r';
//array[i][j][k] = pt[count];
//count++;
}
else
{
array[i][j][k] = 'x';
}
}
}
}