Squares three values ByVal and ByRef, displays results
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