Je comprends que si je passe une valeur de type (int
, struct
, etc.) comme un paramètre (sans l' ref
mot-clé), une copie de cette variable est passée à la méthode, mais si j'utilise l' ref
mot-clé une référence à cette variable est passée, pas une nouvelle.
Mais avec référence-types, comme les classes, même sans l' ref
mot-clé, une référence est passé à la méthode, pas une copie. Alors, quelle est l'utilisation de l' ref
mot-clé de référence-types?
Prenons, par exemple:
var x = new Foo();
Quelle est la différence entre la suivante?
void Bar(Foo y) {
y.Name = "2";
}
et
void Bar(ref Foo y) {
y.Name = "2";
}