Language Basics VB.Net

Imports System
public class MainClass
   Shared Sub Main()
        Dim A As String = "Hello"
        Dim B As String
        B = A
        Console.WriteLine(Chr(10) + "Initial state StringTests")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
        FunctionPassStringByReference1(B)
        Console.WriteLine("After FunctionPassStringByReference1")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
        A = "Hello"
        B = A
        FunctionPassStringByReference2(B)
        Console.WriteLine("After FunctionPassStringByReference2")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
        A = "Hello"
        B = A
        FunctionPassStringByReference3(B)
        Console.WriteLine("After FunctionPassStringByReference3")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("Are A and B equal? " + (A = B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
        A = "Hello"
        B = A
        FunctionPassStringByValue1(B)
        Console.WriteLine("After FunctionPassStringByValue1")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
        A = "Hello"
        B = A
        FunctionPassStringByValue2(B)
        Console.WriteLine("After FunctionPassStringByValue2")
        Console.WriteLine("Are A and B the same? " + (A Is B).ToString())
        Console.WriteLine("A: " + A + " B: " + B)
   End Sub
   Shared Public Sub FunctionPassStringByReference1(ByRef Y As String)
        Mid$(Y, 1, 1) = "A"
    End Sub
   Shared  Public Sub FunctionPassStringByReference2(ByRef Y As String)
        Y = "Hello"
    End Sub
   Shared  Public Sub FunctionPassStringByReference3(ByRef Y As String)
        Mid$(Y, 1, 1) = "H"
    End Sub
   Shared  Public Sub FunctionPassStringByValue1(ByVal Y As String)
        Mid$(Y, 1, 1) = "A"
    End Sub
   Shared  Public Sub FunctionPassStringByValue2(ByVal Y As String)
        Y = "Hello"
    End Sub
End Class