通过引用传递数组元素

Alw*_*ing 7 .net vb.net arrays mono pass-by-reference

我正在使用Mono compiler v4.2.1(.NETFramework 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 
Run Code Online (Sandbox Code Playgroud)

生成的输出是:1.为什么x参数不通过引用绑定到数组元素?有没有办法让这项工作无需传递数组?

其他细节:

  • 我通过HackerRank运行上面的代码

  • 从Visual Studio 2010/2012运行时,上面的代码生成2的输出.

  • 不确定动机是否对问题很重要,但通过引用传递数组元素非常有用.例如,可以实现Swap两个数组元素.

jit*_*arg 1

代码没问题。绝对是您正在使用的编译器中的错误。