有没有办法表明变量是在VB中传递ByRef?我知道在C#中他们有一个ref
关键字,它必须出现在函数头和调用代码中。 VB有同等效力吗?
例如,我的函数看起来像这样
private function add_one(byRef value)as Boolean
调用代码看起来像这样
increment_was_successful = add_one(ByRef value)
答案 0 :(得分:0)
澄清我令人困惑的评论......
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)。
答案 1 :(得分:-1)
原来VB根本不支持这种形式。
increment_was_successful = add_one(ByRef value)
你正在调用该函数而没有任何指示它正在传递的参数
increment_was_successful = add_one(value)