我的程序中具有以下方法:
Public Function AddHandlerTo(ByVal compName As String) As System.Object
For Each item In componentList
If item.Name.Equals(compName) Then
AddHandlerTo = item
End If
Next
End Function
按预期,由于Return
语句的嵌套方式,我在编译器中收到一条警告:
函数'AddHandler'并非在所有代码路径上都返回值。使用结果时,运行时可能会出现空引用异常。
现在,此方法的目的是帮助我(如方法名称所示)将处理程序添加到不容易访问的特定对象。本质上,item
中的每个componentList
是同一父对象的不同子对象。无论如何,这里我的问题并不重要。
我试图弄清楚如何在该方法的末尾添加最后一个Return
语句,以便不再出现错误。如果循环中没有符合条件的对象,我希望它返回一个不存在对象或类似对象的异常。尽管我不知道该如何精确地完成任务,但是我通过Google寻找帮助的能力显然令人恐惧。
答案 0 :(得分:3)
我通常总是这样使用return语句:
Public Function AddHandlerTo(ByVal compName As String) As System.Object
Dim result As Object = Nothing
For Each item In componentList
If item.Name.Equals(compName) Then
result = item
End If
Next
Return result
End Function
或
Public Function AddHandlerTo(ByVal compName As String) As System.Object
For Each item In componentList
If item.Name.Equals(compName) Then
Return item
End If
Next
Return Nothing
End Function
无论您在何处调用此函数,都将检查它是否返回内容或不返回任何内容。