处理空引用异常

时间:2014-05-21 15:05:48

标签: visual-studio-2010

我想在我的代码中插入以下内容。

Public ReadOnly Property SelectedCustomer() As Customer
    Get
        If lstCustomers.SelectedIndex <> -1 Then
            ' Return the selected customer
            Return CType(objCustomers(lstCustomers.SelectedIndex), Customer)
        End If
    End Get
End Property

但保存以下警告时会发生。

财产&#39; SelectedCustomer&#39;不会在所有代码路径上返回值。使用结果时,可能会在运行时发生空引用异常。

如何解决这个问题?有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

当lstCustomer.SelectedIndex = -1时会发生什么? 您目前没有退货。这就是为什么你得到所有路径上的不返回信息。

一个简单的解决方案

Public ReadOnly Property SelectedCustomer() As Customer
    Get
        If lstCustomers.SelectedIndex <> -1 Then
            ' Return the selected customer
            Return CType(objCustomers(lstCustomers.SelectedIndex), Customer)
        End If

        Return Nothing
    End Get
End Property

这个问题是你在阅读这个属性时仍然需要处理Nothing。 您也可以返回一个新的Customer实例,但是再一次,您需要在另一端处理它。