Les objets de type référence ne sont pas vraiment "passés par référence" : c'est une référence qui est passée par valeur ; la méthode appelée ne peut pas changer la référence pour la faire pointer vers un autre objet (ce qui serait le cas avec un passage par référence)En fait, msdn donne bien le même terme que moi, cad passage par référence.D'ailleurs je ne savais pas qu'il était possible en .NET managé de changer la référence au sein d'une méthode comme on pourrait le faire en C++.
Je comprends toujours pas ce que tu veux dire...
Tu peux passer un type référence par référence ou par valeur :
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 // Type référence passé par valeur void Foo(string s) { } // Type référence passé par référence void Foo(ref string s) { } // Type valeur passé par valeur void Foo(int i) { } // Type valeur passé par référence void Foo(ref int i) { }
Haha y'a un petit quiproco Moi je ne veux rien du tout ;p
Juste que tu m'as repris en disant que c'était pas passé vraiment par référence donc je voulais en savoir plus la dessus. Mais msdn a l'air d'utiliser le même terme que moi pour la même chose, donc je suis un peu pommé
Ma formulation était imprécise en fait... J'aurais du dire que "les types référence ne sont pas obligatoirement passés par référence. Ils peuvent être passés par référence, mais beaucoup de gens mélangent un peu les concepts et croient que les types référence sont toujours passés par référence, ce qui est faux. Ils ne sont passés par référence que si le paramètre est explicitement ref
Et donc pour revenir à ce que je demandais : tu as dit à un moment "J'ai pas l'impression que ce dont je parle dans mon message soit possible" : j'ai pas compris qu'est-ce qui n'est pas possible...
De faire comme en C++ et de modifier la référence sur laquelle ça pointe. Mais j'ai eu ma réponse sur msdn je pense.
Encore, une fois j'oublie des mots, faut que j'arrête de faire deux choses en même temps
De changer la valeur de la référence :p
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager