有没有办法表明变量是在VB中传递ByRef?

时间:2015-04-17 23:43:20

标签: vb.net byref

有没有办法表明变量是在VB中传递ByRef?我知道在C#中他们有一个ref关键字,它必须出现在函数头和调用代码中。 VB有同等效力吗?

例如,我的函数看起来像这样

private function add_one(byRef value)as Boolean

调用代码看起来像这样

increment_was_successful = add_one(ByRef value)

2 个答案:

答案 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)