.net 通过引用传递数组元素

.net 通过引用传递数组元素,.net,arrays,vb.net,mono,pass-by-reference,.net,Arrays,Vb.net,Mono,Pass By Reference,我正在使用Mono编译器v4.2.1(.NETframework4.5)编译以下代码: 产量为:1。为什么x参数不通过引用绑定到数组元素?有没有一种方法可以在不通过阵列的情况下实现这一点 其他详细信息: 我正在运行上面的代码 当从VisualStudio2010/2012运行时,上面的代码生成2的输出 不确定动机对问题是否重要,但通过引用传递数组元素非常有用。例如,可以实现采用两个数组元素的Swap 代码正常。最明显的是,您正在使用的编译器中存在一个bug 看起来像是Mono VB编译器中的错

我正在使用
Mono编译器v4.2.1
.NET
framework4.5)编译以下代码:

产量为:1。为什么
x
参数不通过引用绑定到数组元素?有没有一种方法可以在不通过阵列的情况下实现这一点

其他详细信息

  • 我正在运行上面的代码

  • 当从VisualStudio2010/2012运行时,上面的代码生成2的输出

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


    • 代码正常。最明显的是,您正在使用的编译器中存在一个bug

      看起来像是Mono VB编译器中的错误。C#等价物工作正常(使用Ideone、Mono 4.0.1进行测试)是的,请向优秀示例报告错误-这些问题与VB.Net Visual Studio 2015 Framework 4.5.2 Windows上预期的摇摆木马一样罕见。
      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