Bonjour,
Avez vous des morceau de code concret avec des variable par "valeur" et par "Référence"
Il y a un truc qui m’échappe dans le cour de M Lasserre
Merci d'avance
Bonjour,
Avez vous des morceau de code concret avec des variable par "valeur" et par "Référence"
Il y a un truc qui m’échappe dans le cour de M Lasserre
Merci d'avance
qu'est ce qui t'échappe dans le byref & byval?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 dim ref as string = "toto" ajouterTexteByval(ref) dim after as string = ref 'là, ref == "toto" ajouterTexteByref(ref) dim after as string = ref 'ici, ref == "bonjour" sub ajouterTexteByval(byval pReference as String) pRefernece = "bonjour" endsub sub ajouterTexteByref(byref pReference as String) pRefernece = "bonjour" endsub
Voila le soucis
Dim B = A
Quand on déclare B et on affecte a A, pour moi B va forcément prendre la valeur ou référence de A.
je recherche des morceau de code qui pourrai m'aider a comprendre.
Bonjour,
--> Dans un 1er temps :
on n'affecte pas B à A mais la valeur de A à la variable B (B étant de type Object) !
--> Dans un seconds temps :
Dans ton cas de figure (déclaration de variable puis affectation) il n'existe pas de notion "par référence" !
-- >Enfin :
L'exemple de myNameIsFlo reste assez explicite. Quant à savoir quand tu devras faire usage du passage par référence puisque d'usage nous utilisons principalement "ByVal" (tout dépends le contexte) tu le sauras lorsque tu en auras besoin.
A+
Merci pour vos réponse
Dans le cours le cours VB.net
Travaillons sur A et B, 2 variables ayant la même 'nature'
A existant déja, faisons:
Dim B=A
Puis modifions la valeur de A, cela modifie t'il B?
les variables par valeur ou référence ne réagissent pas de la même manieres:
Si le type de variable est par valeur, chaque variable ayant sa valeur, B n'est pas modifié.
Si le type de variable est par référence, chaque variable est definie par sa référence; faire A=B entraine que A et B ont les même reference.
Si tu ne comprends pas cette phrase je peux bien te proposer un exemple mais je ne suis pas convaincu que cela t'aide davantage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Dim A = 10 Dim B = 0 Dim result = String.Empty 'On ajoute 10 à la variable B result = AddByVal(A, B) MsgBox("Résultat retourné par la fonction : " & result & vbNewLine & _ "Valeure de A après l'ajout : " & A & vbNewLine & _ "Valeure de B après l'ajout : " & B) '--> On se rends compte qu'après exécution de la fonction le résultat est correcte et que la valeur de la variable B reste 0 'On ajoute 10 à la variable B result = AddByRef(A, B) MsgBox("Résultat retourné par la fonction : " & result & vbNewLine & _ "Valeure de A après l'ajout : " & A & vbNewLine & _ "Valeure de B après l'ajout : " & B) '--> On se rends compte qu'après exécution de la fonction le résultat est correcte mais la variable B a été modifiée à l'intérieur de la fonction et elle est maintenant à 10 puisqu'il s'agit ici d'une référence de B (on pointe vers l'adresse mémoire)J'ai repris l'exemple avec les variables A et B....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Shared Function AddByRef(ByVal A%, ByRef B%) As String ' Cela impacte la référence de B qui se situe à l'extérieur de cette fonction ! B += A Return B.ToString End Function Private Shared Function AddByVal(ByVal A%, ByVal B%) As String B += A Return B.ToString End Function
J'espère que ça sera plus clair.
A+
Partager