Je souhaite modifier directement la valeur d'une variable en dehors d'une méthode de l'intérieur.
Les pointeurs sont la voie, correct? P>
Comment? p>
5 Réponses :
Utiliser ref code>. Par exemple.
FOO (REF INT I) CODE> permettra
FOO code> de modifier la valeur de
i code> via la référence à la valeur de l'appelant. p>
Les pointeurs sont la voie, correct? p>
pas en C # Ils ne sont pas. Utilisez les paramètres Réf: P>
void Times2(ref int a) { a = a * 2; } void Foo() { int x = 1; Times2(ref x); // x is now 2 }
Réf code> ou
OUT CODE> MODIFICIERS: FORT>
void Foo( ref string s, ref int x )
{
s = "Hello World"; // caller sees the change to s
x = 100; // caller sees the change to x
}
// or, alternatively...
void Bar( out string s )
{
s = "Hello World";
}
Je suppose que cela a à voir avec le collecteur des ordures?
Je ne peux pas m'empêcher de penser qu'un type de référence immuable (chaîne) n'est pas le meilleur sujet à démontrer les paramètres ref code>.
Si la valeur est une classe, elle est déjà passée par référence, et rien d'autre n'est requis, à moins que vous ne devez attribuer l'objet à quelque chose, S'il s'agit d'une structure (int, flotteur, long, double, etc.), vous devez utiliser Réf (si l'objet peut ou non être modifié) ou non (si l'objet sera modifié). Vous pouvez avoir plus d'un argument dans une méthode marquée par REF ou VAL. P> val = autreObject code>, alors vous devez utiliser les mots-clés Ref ou Out. p>