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 (有効な値に初期化されていない) にアクセスしようとしています。そのため、それにアクセスする前に null チェックを追加してください。

employeeList.SelectedValueこの場合、おそらくnullだと思います。

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 に null 値があることを意味します。

null オブジェクト (SelectedValue) にはメソッドがないため、.ToString() を呼び出すことはできません。

this.employeeList.SelectedValue が null になる理由を調べて、問題の原因を突き止めてください。

于 2012-04-24T23:29:14.973 に答える