首页 > 解决方案 > 在 Visual Basic 中创建一个通过引用返回的函数

问题描述

所以,假设,如果我要尝试在两个数字之间编写一种“GetMax”函数,并且我想通过引用返回两个数字中的最大值,那么我可以直接从调用功能。

所以在 CPP 中它可能看起来像这样:

int& GetMax(int& a, int& b)
{
    if (a > b) {
        return a;
    }
    else {
        return b;
    }
}

我可以像这样编辑它:

int main(void)
{
    int a = 30;
    int b = 20;

    GetMax(a, b) = 10;

}

GetMax(a, b) = 10;会改变 a 的值。

我可以在 Visual Basic 中做类似的事情吗?

Function GetMax(ByRef a As Integer, ByRef b As Integer) As Integer

    If a > b Then
        Return a
    Else
        Return b
    End If

End Function

^ 但它不会返回一个值,而是返回一个引用,所以我可以像在 CPP 示例中那样处理函数。我并没有真正致力于学习视觉基础,所以我真的不知道我是否完全错过了一个可以让我做我想做的事情的关键概念。谢谢 !:)

标签: .netvb.netreference

解决方案


答案是否定的,因此您必须执行以下操作才能在您提供的示例中获得相同的结果:

Sub SetMax(ByRef a As Integer, ByRef b As Integer, value As Integer)

    If a > b Then
        a = value
    Else
        b = value
    End If

End Sub

并致电:

SetMax(a, b, 10)

推荐阅读