Imports System
public class MainClass
Shared Sub Main()
Dim A As Integer() = {1, 2, 3, 4, 5}
Dim B As Integer()
B = A
Console.WriteLine("Initial state ArrayTests")
Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
Console.WriteLine("Array A:")
DisplayArray(A)
Console.WriteLine("Array B")
DisplayArray(B)
FunctionPassArrayByReference1(B)
Console.WriteLine("After FunctionPassArrayByReference1")
Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
Console.WriteLine("Array A:")
DisplayArray(A)
Console.WriteLine("Array B")
DisplayArray(B)
A(0) = 1
B = A
FunctionPassArrayByReference2(B)
Console.WriteLine("After FunctionPassArrayByReference2")
Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
Console.WriteLine("Array A:")
DisplayArray(A)
Console.WriteLine("Array B")
DisplayArray(B)
A(0) = 1
B = A
FunctionPassArrayByValue1(B)
Console.WriteLine("After FunctionPassArrayByValue1")
Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
Console.WriteLine("Array A:")
DisplayArray(A)
Console.WriteLine("Array B")
DisplayArray(B)
A(0) = 1
B = A
FunctionPassArrayByValue2(B)
Console.WriteLine("After FunctionPassArrayByValue2")
Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
Console.WriteLine("Array A:")
DisplayArray(A)
Console.WriteLine("Array B")
DisplayArray(B)
End Sub
Shared Public Sub FunctionPassArrayByReference1(ByRef Y As Integer())
Y(0) = 5
End Sub
Shared Public Sub FunctionPassArrayByReference2(ByRef Y As Integer())
Dim NewArray As Integer() = {2, 3, 4, 5, 6}
Y = NewArray
End Sub
Shared Public Sub FunctionPassArrayByValue1(ByVal Y As Integer())
Y(0) = 5
End Sub
Shared Public Sub FunctionPassArrayByValue2(ByVal Y As Integer())
Dim NewArray As Integer() = {2, 3, 4, 5, 6}
Y = NewArray
End Sub
Shared Public Sub DisplayArray(ByVal Y As Integer())
Dim X As Integer
For X = 0 To UBound(Y)
Console.Write(Y(X).ToString)
If X <> UBound(Y) Then
Console.Write(", ")
Else
Console.WriteLine()
End If
Next
End Sub
End Class