J'ai regardé les questions similaires et lu quelques articles. THis article a quelques photos qui le rend clair.En passant par référence et en utilisant la référence
SomeObject so = new SomeObject();
somefunction(so);
Console.write(so.x); // will print 1
SomeObject so1 = new SomeObject();
somefunctionByRef(so1);
Console.write(so1.x); // will print 1
static void somefunction(SomeObject so)
{
so.x = 1;
}
public void somefunctionByRef(ref SomeObject so)
{
so.x = 1;
}
Les deux méthodes ont le même effet sur ce type de référence. alors pourquoi choisir ref
mot-clé pour les types de référence?
Est-ce une mauvaise pratique (peut-être fausse) d'utiliser somefunction (SomeObject so) et de modifier l'objet à l'intérieur de la méthode et attendre les changements sans utiliser le mot-clé ref?
alors pourquoi choisir le mot clé ref pour les types de référence? – DarthVader
alors quel est le point que vous essayez de faire? – ronaldwidha
En utilisant 'ref', vous pouvez changer l'objet auquel une variable fait référence à partir d'une fonction différente. Notez l'affectation 'so = null;' –