Byval (Visual Basic)
Spécifie qu'un argument est passé de telle manière que la procédure ou la propriété appelée ne peut pas changer la valeur d'une variable sous-jacente à l'argument dans le code appelant.
Notes
Le modificateur ByVal peut être utilisé dans les contextes suivants :
Function, instruction (Visual Basic)
Sub, instruction (Visual Basic)
Exemple
L'exemple suivant montre l'utilisation du paramètre ByVal qui passe le mécanisme avec un argument de type référence. Dans cet exemple, l'argument est c1, une instance de la classe Class1. ByVal empêche le code dans les procédures de modifier la valeur sous-jacente de l'argument de référence, c1, mais ne protège pas les champs et les propriétés accessibles de 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
Voir aussi
Concepts
Passage d'un argument par valeur et par référence (Visual Basic)