Passing arrays and individual array elements to procedures : Array Parameters « Collections « VB.Net Tutorial






Module Tester

   Sub Main()
      Dim array1 As Integer() = New Integer() {1, 2, 3, 4, 5}
      Dim i As Integer

      ' display original elements of array1
      For i = 0 To array1.GetUpperBound(0)
         Console.WriteLine(array1(i))
      Next

      ModifyArray(array1) ' array is passed by reference

      Console.WriteLine("The values of the modified array are:")

      ' display modified elements of array1
      For i = 0 To array1.GetUpperBound(0)
         Console.WriteLine(array1(i))
      Next

      ' array element passed by value
      ModifyElementByVal(array1(3))

      Console.WriteLine("array1(3) after " & _
         "ModifyElementByVal: " & array1(3))

      ' array element passed by reference
      ModifyElementByRef(array1(3))

      Console.WriteLine("array1(3) after " & _
         "ModifyElementByRef: " & array1(3))


   End Sub ' Main

   ' procedure modifies array it receives (note ByVal)
   Sub ModifyArray(ByVal arrayParameter As Integer())
      Dim j As Integer

      For j = 0 To arrayParameter.GetUpperBound(0)
         arrayParameter(j) *= 2
      Next

   End Sub ' ModifyArray

   ' procedure modifies integer passed to it
   ' original is not be modified (note ByVal)
   Sub ModifyElementByVal(ByVal element As Integer)

      Console.WriteLine("Value received in " & _
         "ModifyElementByVal: " & element)
      element *= 2
      Console.WriteLine("Value calculated in " & _
         "ModifyElementByVal: " & element)
   End Sub ' ModifyElementByVal

   ' procedure modifies integer passed to it
   ' original is be modified (note ByRef)
   Sub ModifyElementByRef(ByRef element As Integer)

      Console.WriteLine("Value received in " & _
         "ModifyElementByRef: " & element )
      element *= 2
      Console.WriteLine("Value calculated in " & _
         "ModifyElementByRef: " & element)
   End Sub 

End Module
1
2
3
4
5
The values of the modified array are:
2
4
6
8
10
Value received in ModifyElementByVal: 8
Value calculated in ModifyElementByVal: 16
array1(3) after ModifyElementByVal: 8
Value received in ModifyElementByRef: 8
Value calculated in ModifyElementByRef: 16
array1(3) after ModifyElementByRef: 16








8.3.Array Parameters
8.3.1.Pass array
8.3.2.Passing arrays and individual array elements to procedures
8.3.3.Testing the effects of passing array references using ByVal and ByRef