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
|