En C#, les variables peuvent être soit des types valeur, soit des types référence. Lors de la transmission de types de valeurs aux méthodes, le mot-clé ref est utilisé pour modifier le comportement. Cependant, pour les types référence, le but de ref est moins intuitif.
En C#, les types référence sont toujours transmis aux méthodes en tant que références, même sans le mot-clé ref. Cela signifie que les modifications apportées à la référence au sein de la méthode affecteront la variable d'origine en dehors de la méthode. Pour illustrer :
var x = new Foo();
void Bar(Foo y) { y.Name = "2"; // Modification to the reference within the method } Bar(x); Console.WriteLine(x.Name); // Output: "2"
Dans cet exemple, bien que nous transmettions x à la méthode Bar sans le mot-clé ref, la valeur de x.Name est toujours modifiée, démontrant le comportement de passage de référence de reference- types.
Alors que le mot-clé ref n'est généralement pas requis pour le type de référence au passage, il joue un rôle crucial dans un scénario spécifique : la réaffectation de la référence elle-même. Sans ref, toute modification au sein de la méthode n'affectera que la référence locale transmise à la méthode, laissant la variable d'origine inchangée. Cependant, avec ref, vous pouvez modifier la référence réelle vers laquelle pointe la variable. Voici un exemple :
Foo foo = new Foo("1"); void Bar(ref Foo y) { y = new Foo("2"); // Reassigning the reference y points to } Bar(ref foo); Console.WriteLine(foo.Name); // Output: "2"
Dans ce scénario, le mot-clé ref nous permet de réaffecter la référence vers laquelle foo pointe, modifiant ainsi la valeur de foo.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!