Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim O As Object
O = FunctionName()
If IsNothing(O) = True Then
MsgBox("空值")
End If
End Sub
Public Function FunctionName() As Object
Return Nothing '返回空
End Function
Public Function FunctionName(Byval Sender as Object) As Object
Return Nothing '返回空
'Return DBNull.Value 'DBNull类型的空
'Return String.Empty '返回空字符
'....
'..
End Function
在VB.NET里面,谈到返回值,一般都是函数的(如果用一个参数来接受过程的返回值,IDE是不会接受的)。如果是过程,则需要用BYREF来返回(相当于OUT)。
而楼主所说的“空”,这个字不好理解。一般意义上来讲,应该是指什么也没有,那就当做NOTHING?也许是DBNULL?这都不好说。不过可以这样概括,所有返回值为引用的,则返回NOTHING时得到的返回值就是“空”,而如果你的返回值被定义成非引用型的,则返回NOTHING时得到的是该类型的默认值。这里较为“特殊”的是STRING类型,它是引用型。
可以测试以下代码
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(TypeName(test1()))
MsgBox(TypeName(test2()))
MsgBox(TypeName(test3()))
MsgBox(TypeName(test4()))
End Sub
Function test1() As Object
Return Nothing
End Function
Function test2() As Object
Return DBNull.Value
End Function
Function test3() As String
Return Nothing
End Function
Function test4() As Integer
Return Nothing
End Function