Module Module1
Sub Main()
Dim arr() As Integer = {1, 2, 3, 4, 5}
' arrays passed by reference always
s(arr)
For Each element As Integer In arr
Console.Write("{0, 3}", element)
Next
Console.WriteLine()
s_byval(arr)
For Each element As Integer In arr
Console.Write("{0, 3}", element)
Next
Console.WriteLine()
s_byref(arr)
For Each element As Integer In arr
Console.Write("{0, 3}", element)
Next
End Sub
Sub s(arr() As Integer)
arr(0) = 111
End Sub
Sub s_byval(ByVal arr() As Integer)
arr(0) = 222
End Sub
Sub s_byref(ByRef arr() As Integer)
arr(0) = 333
End Sub
End Module
'run:
'
' 111 2 3 4 5
' 222 2 3 4 5
' 333 2 3 4 5