NullReferenceException未处理C#

时间:2013-01-16 11:01:35

标签: c# nullreferenceexception

Visual Studio 2010 - (Windows窗体)在C#中

我有这段代码:

private void cbxValuta_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            string primo = cbxValuta.SelectedItem.ToString();
            string secondo = cbxValuta2.SelectedItem.ToString();
            double cambio = double.Parse(CurrencyConverter.Convert(1.0m, primo, secondo));
            tbxConvertito.Text = (double.Parse(tbxDaConvertire.Text) * cambio).ToString();

我收到此错误:

  

NullReferenceException未处理   对象引用未设置为对象的实例。

我如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

你可能没有SelectedItem我的组合框。

  

当前所选项目的对象;如果当前没有选定项目,则为null。

然后这些行可能会在ToString()

失败
string primo = cbxValuta.SelectedItem.ToString();
string secondo = cbxValuta2.SelectedItem.ToString();

答案 1 :(得分:1)

如果UI元素中未选择任何项,则

SelectedItem返回null。尝试添加检查是否已选择项目

if(cbxValuta.SelectedItem != null && cbxValuta2.SelectedItem != null)
{
       string primo = cbxValuta.SelectedItem.ToString();
       string secondo = cbxValuta2.SelectedItem.ToString();
//       ....
}

答案 2 :(得分:1)

你写了这个异常发生在这个字符串:

string secondo = cbxValuta2.SelectedItem.ToString();

表示或cbxValuta2为null,或者cbxValuta2.Selected项为null。检查您在此组合框中选择了哪些内容。

答案 3 :(得分:0)

这意味着cbxValuta2或(更有可能)cbxValuta2.SelectedItemnull。这并不奇怪 - 如果您有一个用户可以选择零项的列表,null很可能是值。

在调用任何方法(在本例中为if)之前,您应该使用ToString()进行检查。

答案 4 :(得分:0)

primo为null,因为cbxValuta没有选定的项目。