ByVal (Visual Basic)
Kennzeichnet ein Argument, das so übergeben wird, dass der Wert einer Variablen, die dem Argument im Aufrufcode zugrunde liegt, von der aufgerufenen Prozedur oder Eigenschaft nicht geändert werden kann.
Hinweise
Der ByVal-Modifizierer kann in folgenden Kontexten verwendet werden:
Function-Anweisung (Visual Basic)
Beispiel
Im folgenden Beispiel wird die Verwendung des Übergabemechanismus für den ByVal-Parameter mit einem Referenztypargument veranschaulicht. Im Beispiel ist das c1-Argument eine Instanz der Class1-Klasse. ByVal verhindert, dass der zugrunde liegende Wert des c1-Verweisarguments vom Code in den Prozeduren geändert wird, die Felder und Eigenschaften von c1, auf die zugegriffen werden kann, sind jedoch nicht geschützt.
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("Original value for the field: " & c1.Field)
' ByVal does not prevent changing the value of a field or property.
ChangeFieldValue(c1)
Console.WriteLine("Value of field after ChangeFieldValue: " & c1.Field)
' ByVal does prevent changing the value of c1 itself.
ChangeClassReference(c1)
Console.WriteLine("Value of field after ChangeClassReference: " & c1.Field)
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
Siehe auch
Konzepte
Übergeben von Argumenten als Wert und als Verweis (Visual Basic)