4

我在这条线上遇到错误:

String selectedValue = this.employeeList.SelectedValue.ToString();

我得到的错误是

NullReferenceException 未处理。

这是什么意思?有人可以帮我理解为什么我会收到这个错误。下面是整个代码。

String filePath = this.txtFilePath.Text;
if (!String.IsNullOrEmpty(filePath))
{
    MessageBox.Show("No file path specified");
}

if (this.employeeList.SelectedIndex != -1)
{
    String selectedValue = this.employeeList.SelectedValue.ToString();
    using (StreamWriter writer = new StreamWriter(filePath, true))
    {
        writer.WriteLine(selectedValue);
    }
}
else
{
    MessageBox.Show("No item selected");
}
4

2 回答 2

4

这意味着您正在尝试访问为 null 的内容(未初始化为任何有效值)。因此,在访问之前添加一个空检查。

我想在这种情况下,employeeList.SelectedValue可能是空的。

String selectedValue = string.Empty;
if(this.employeeList.SelectedValue!=null)
{
  selectedValue = this.employeeList.SelectedValue.ToString();
}
else
{
  MessageBox.Show("Please select any value");
}

如果您遇到任何此类错误,请始终使用 Visual Studio 断点并逐行逐行查看即将出现的值以及中断的位置。这是理解代码有什么问题的最好方法。

于 2012-04-24T23:30:09.793 回答
1

这意味着 this.employeeList.SelectedValue 有一个空值。

空对象 (SelectedValue) 没有方法,因此您不能在其上调用 .ToString()。

调查为什么 this.employeeList.SelectedValue 为空,你会找到问题的根源。

于 2012-04-24T23:29:14.973 回答