我正在使用Mono compiler v4.2.1
(.NET
Framework 4.5)编译以下代码:
Module Module1
Sub Change(ByRef x As Integer)
x += 1
End Sub
Sub Main()
Dim arr() As Integer = {1}
Change(arr(0))
Console.WriteLine(arr(0))
End Sub
End Module
产生的输出是:1。为什么x
参数没有通过引用绑定到数组元素?有没有办法让这项工作无需传递数组?
其他详细信息:
我通过HackerRank
从Visual Studio 2010/2012运行时,上面的代码生成2的输出。
不确定动机是否对问题很重要,但通过引用传递数组元素非常有用。例如,可以实现带有两个数组元素的Swap
。