Array passed By Reference
Imports System Public Class MainClass Shared Sub Main(ByVal args As String()) Dim i As Integer ' declare array references Dim secondArray As Integer() Dim secondArrayCopy As Integer() ' allocate secondArray and copy its reference secondArray = New Integer() {1, 2, 3} secondArrayCopy = secondArray Console.WriteLine(vbCrLf & "Test passing array " & _ "reference using ByRef.") Console.Write("Contents of secondArray before " & _ "calling SecondDouble: ") ' print contents of secondArray before procedure call For i = 0 To secondArray.GetUpperBound(0) Console.Write(secondArray(i) & " ") Next ' pass secondArray using ByRef SecondDouble(secondArray) Console.Write(vbCrLf & "Contents of secondArray " & _ "after calling SecondDouble: ") ' print contents of secondArray after procedure call For i = 0 To secondArray.GetUpperBound(0) Console.Write(secondArray(i) & " ") Next ' test whether the reference was changed by SecondDouble If secondArray Is secondArrayCopy Then Console.WriteLine(vbCrLf & "The references are " & _ "equal.") Else Console.WriteLine(vbCrLf & "The references are " & _ "not equal.") End If End Sub ' procedure modifies elements of array and assigns ' new reference (note ByRef) Shared Sub SecondDouble(ByRef array As Integer()) Dim i As Integer ' double contents of array For i = 0 To array.GetUpperBound(0) array(i) *= 2 Next ' create new reference, assign it to array array = New Integer() {11, 12, 13} End Sub ' SecondDouble End Class