Sdílet prostřednictvím


ByVal (Visual Basic)

Určuje, že takovým způsobem, že volaná procedura nebo vlastnost nelze změnit hodnotu proměnné podkladových argument volající kód je předán argument.

Poznámky

ByVal Modifikátor lze v těchto kontextech:

Prohlásit prohlášení

Příkaz funkce (Visual Basic)

Operátor prohlášení

Popis vlastností

Příkaz Sub (Visual Basic)

Příklad

Následující příklad ukazuje použití ByVal parametr procházející mechanismus s argument typu odkaz.V příkladu je argument c1, instance třídy Class1.ByValZabrání změně základní hodnota argumentu odkaz kód v postupech c1, ale nechrání přístupné polí a vlastnosti c1.

Module Module1

    Sub Main()

        ' Declare an instance of the class and assign a value to its field.
        Dim c1 As Class1 = New Class1()
        c1.Field = 5
        Console.WriteLine(c1.Field)
        ' Output: 5

        ' ByVal does not prevent changing the value of a field or property.
        ChangeFieldValue(c1)
        Console.WriteLine(c1.Field)
        ' Output: 500

        ' ByVal does prevent changing the value of c1 itself. 
        ChangeClassReference(c1)
        Console.WriteLine(c1.Field)
        ' Output: 500

        Console.ReadKey()
    End Sub

    Public Sub ChangeFieldValue(ByVal cls As Class1)
        cls.Field = 500
    End Sub

    Public Sub ChangeClassReference(ByVal cls As Class1)
        cls = New Class1()
        cls.Field = 1000
    End Sub

    Public Class Class1
        Public Field As Integer
    End Class

End Module

Viz také

Koncepty

Předávání argumentů hodnotou a odkaz (Visual Basic)

Další zdroje

Klíčová slova (Visual Basic)