我正在尝试通过引用将变量分配给另一个变量,以便更改一个值将更改两个值,如该伪代码示例所示:
Dim x as Integer = 0
Dim y as Integer = x [byRef]
x = 1
Debug.print("x = " & x)
Debug.print("y = " & y)
'should print x = 1, y = 1
但是当然,它会打印x = 1,y = 0,因为默认情况下Integer是Value类型。所以问题是,如何强制通过引用将y赋给x?我知道对象是引用类型,所以我尝试了y = Cobj(x)
,但是没有用。我想这样做而无需包装(很想解释原因,但是我不能在这里使用包装)。任何人都可以提出任何建议吗?
编辑:我忘了提到我在VB.NET中进行编码。
答案 0 :(得分:0)
您不能使整数类型在vb中保留引用。它将始终保存一个值,而不是对另一个对象的引用。但是,可以通过引用函数或子例程来传递整数变量,以便函数或子例程可以修改值。这是一个示例:
Sub Main()
Dim x As Integer = 0
PassByValue(x)
Debug.Print("x = " & x) 'Prints x = 0
PassByReference(x)
Debug.Print("x = " & x) 'Prints x = 2
End Sub
Sub PassByValue(x As Integer)
x = 2
End Sub
Sub PassByReference(ByRef x As Integer)
x = 2
End Sub