通过引用传递数组元素
Posted
技术标签:
【中文标题】通过引用传递数组元素【英文标题】:Passing an array element by reference 【发布时间】:2016-04-09 02:08:32 【问题描述】:我正在使用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
,它接受两个数组元素。
【问题讨论】:
看起来像 Mono VB 编译器中的一个错误。等效的 C# 工作正常(使用 Ideone、Mono 4.0.1 测试) 是的,请将错误报告给bugzilla.xamarin.com minimal reproducible example 的极好例子——这类问题像摇马粪便一样罕见 使用 VB.Net Visual Studio 2015, Framework 4.5.2 在 Windows 上按预期工作。 【参考方案1】:代码很好。绝对是您正在使用的编译器中的错误。
【讨论】:
以上是关于通过引用传递数组元素的主要内容,如果未能解决你的问题,请参考以下文章