有没有一种方法可以指示变量在VB中被ByRef传递?我知道在C#中,它们有一个ref
关键字,它必须出现在函数头和调用代码中。VB有等效程序吗?
例如,我的函数看起来像这个
private function add_one(byRef value)as Boolean
呼叫代码看起来像这个
increment_was_successful = add_one(ByRef value)
为了澄清我令人困惑的评论。。。
ByRef和ByVal用于定义子或函数的参数,而不是在调用中。
以下是一些代码,类似于OP问题:
Dim orgVal As Integer = 1
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim increment_was_successful As Boolean
increment_was_successful = add_one(orgVal)
MsgBox(increment_was_successful & " - " & orgVal)
End Sub
Private Function add_one(ByRef value As Integer) As Boolean
Const limit As Integer = 3
If value <= limit - 1 Then
value += 1
Return True
Else
Return False
End If
End Function
注意函数定义中的ByRef。如果您将ByRef更改为ByVal,您将看到orgVal从未更改。"value"是add_one的本地值,而不是指向orgVal的指针(ByRef)。
原来VB根本不支持这种形式。
increment_was_successful = add_one(ByRef value)
您调用函数时没有任何指示它被ref 传递的指示
increment_was_successful = add_one(value)