Language Basics VB.Net

Imports System
Public Class MainClass
    Shared Sub Main(ByVal args As String())
      Dim number1 As Integer = 2
      Console.WriteLine("Passing a value-type argument by value:")
      Console.WriteLine("Before calling SquareByValue, " & _
         "number1 is {0}", number1)
      SquareByValue(number1)  ' passes number1 by value
      Console.WriteLine("After returning from SquareByValue, " & _
         "number1 is {0}" & vbCrLf, number1)
      Dim number2 As Integer = 2
      Console.WriteLine("Passing a value-type argument" & _
         " by reference:")
      Console.WriteLine("Before calling SquareByReference, " & _
         "number2 is {0}", number2)
      SquareByReference(number2) ' passes number2 by reference
      Console.WriteLine("After returning from " & _
         "SquareByReference, number2 is {0}" & vbCrLf, number2)
      Dim number3 As Integer = 2
      Console.WriteLine("Passing a value-type argument" & _
         " by reference, but in parentheses:")
      Console.WriteLine("Before calling SquareByReference " & _
         "using parentheses, number3 is {0}", number3)
      SquareByReference((number3)) ' passes number3 by value
      Console.WriteLine("After returning from " & _
         "SquareByReference, number3 is {0}", number3)
    End Sub
   ' squares number by value (note ByVal keyword)
   Shared Sub SquareByValue(ByVal number As Integer)
      Console.WriteLine("After entering SquareByValue, " & _
         "number is {0}", number)
      number *= number
      Console.WriteLine("Before exiting SquareByValue, " & _
         "number is {0}", number)
   End Sub ' SquareByValue
   ' squares number by reference (note ByRef keyword)
   Shared Sub SquareByReference(ByRef number As Integer)
      Console.WriteLine("After entering SquareByReference" & _
         ", number is {0}", number)
      number *= number
      Console.WriteLine("Before exiting SquareByReference" & _
         ", number is {0}", number)
   End Sub ' SquareByReference
End Class