Visual Basic .NETでは、配列としてパラメータを指定する場合、注意する必要がある2つの重要な規則があります。
配列自体は、ByValとByRefとして渡すことができます。
配列の要素は、関数またはサブルーチンからいつでも変更できます。
サブプロセス(サブルーチンまたは関数)内の配列の要素を変更することができることは既に知っています。
したがって、これらの2つのサブルーチンを考えると、
Private Sub desval(ByVal array() As String)
array = {}
End Sub
Private Sub desref(ByRef array() As String)
array = {}
End Sub
そして、この非常に単純な補助サブルーチン(ここではConsoleを使用します):
Private Sub printArr(ByVal array() As String)
For Each str In array
Console.WriteLine(str)
Next
End Sub
以下の簡単なテストを行うことができます:
Dim arr1() as String = {"abc", "xyz", "asdf"}
Console.WriteLine("Original array:")
printArr(arr1)
Console.WriteLine()
Console.WriteLine("After desval:")
desval(arr1)
printArr(arr1)
Console.WriteLine()
Console.WriteLine("After desref:")
desref(arr1)
printArr(arr1)