我到处寻找,我似乎无法找到问题的根源,也无法解决这个问题。我的下面的代码是使用冒泡排序和标记名称a-z来整理数组。这很好,但这不是问题。问题是,当代码沿着我指示的行运行时,错误显示。我甚至不知道从哪里开始解决这个问题。已经有2个多小时了。
string[] temp = new string[3];
for (int passes = 0; passes < classMateInfo.Length; passes++)
{
for (int pos = 0; pos < classMateInfo.Length - 1 - passes; pos++)
{
//The problem is this line below. The error shows up for this.
if ((classMateInfo[pos].first).CompareTo((classMateInfo[pos + 1].first)) == 1)
{
temp[0] = classMateInfo[pos].first;
temp[1] = classMateInfo[pos].last;
temp[2] = classMateInfo[pos].ID;
classMateInfo[pos] = classMateInfo[pos + 1];
classMateInfo[pos + 1].first = temp[0];
classMateInfo[pos + 1].last = temp[1];
classMateInfo[pos + 1].ID = temp[2];
}
}
}
不要把我与其他人类似的问题联系起来。我很难理解其他人的答案,而且我的代码也不同,所以如果有人能够指出我正确的方向并且给我更详细的解释为什么会抛出这个例外,那就太棒了。 / p>
我的问题是,澄清一下,为什么我会向我抛出一个空例外?在哪里寻找解决问题的方法?
感谢。
答案 0 :(得分:1)
如果您在此行获得NullReferenceException
:
if ((classMateInfo[pos].first).CompareTo((classMateInfo[pos + 1].first)) == 1)
这意味着classMateInfo
数组包含null
值,或者数组中的某个元素的null
值为first
。
无法帮助你,我不知道数组的内容。