我正在使用 Mono 编译器 v4.2.1(.NET Framework 4.5)编译以下代码:
生成的输出是:1。为什么
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
函数。