ByVal y ByRef con tipo de referencia

Por favor, consulte el siguiente código:

Public Class TypeTest
    Public variable1 As String
End Class

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim t1 As TypeTest = New TypeTest
        Test(t1)
        MsgBox(t1.variable1)
    End Sub

    Public Sub Test(ByVal t1 As TypeTest)
        t1.Variable1 = "Thursday"
    End Sub

End Class

El cuadro de mensaje en form_load imprime: jueves, lo que significa que el objeto (TypeTest) se pasa por referencia. ¿Cuál es la diferencia entre usar ByVal y ByRef para el argumento t1 en la función llamada: Prueba?

Respuestas a la pregunta(3)

Su respuesta a la pregunta