有没有办法表明一个变量正在 VB 中通过 ByRef 传递?
Is there a way to indicate a variable is being passed ByRef in VB?
有没有办法表明在 VB 中正在通过 ByRef 传递变量?我知道在 C# 中它们有一个 ref
关键字,它必须出现在函数头和调用代码中。 VB 有等价物吗?
例如,我的函数如下所示
private function add_one(byRef value)as Boolean
调用代码如下所示
increment_was_successful = add_one(ByRef value)
原来VB根本不支持这种形式。
increment_was_successful = add_one(ByRef value)
你在调用函数时没有任何迹象表明它正在通过 ref
increment_was_successful = add_one(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 中正在通过 ByRef 传递变量?我知道在 C# 中它们有一个 ref
关键字,它必须出现在函数头和调用代码中。 VB 有等价物吗?
例如,我的函数如下所示
private function add_one(byRef value)as Boolean
调用代码如下所示
increment_was_successful = add_one(ByRef value)
原来VB根本不支持这种形式。
increment_was_successful = add_one(ByRef value)
你在调用函数时没有任何迹象表明它正在通过 ref
increment_was_successful = add_one(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)。