Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Spécifie qu’un argument a dépassé par valeur, de sorte que la procédure ou la propriété appelée ne peut pas modifier la valeur d'une variable sous-jacente à l'argument dans le code appelant. Si aucun modificateur n’est spécifié, ByVal est la valeur par défaut.
Note
Comme il s’agit de la valeur par défaut, vous n’avez pas à spécifier explicitement le mot-clé ByVal
dans les signatures de méthode. Cela tend à produire un code bruyant et conduit souvent à négliger le mot-clé ByRef
qui n'est pas celui par défaut.
Le modificateur ByVal
peut être utilisé dans les contextes suivants :
L’exemple suivant illustre l’utilisation du mécanisme de passage du paramètre ByVal
avec un argument de type référence. Dans l’exemple, l’argument est c1
, une instance de classe Class1
. ByVal
empêche le code des procédures de modifier la valeur sous-jacente de l’argument de référence, c1
, mais ne protège pas les champs et 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 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
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires:
Événement
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant