[.net] 配列要素を参照渡しする


Answers

Question

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の出力を生成します。

  • モチベーションが質問にとって重要であるかどうかは不明ですが、配列要素を参照渡しで渡すことは非常に便利です。 たとえば、2つの配列要素を取るSwapを実装することができます。