Merci
Version imprimable
Merci
Avec le mot clé ref ta variable doit être instanciée avant l'appel de la méthode.
Avec le mot clé out, ce n'est pas obligatoire.
avec out
Class myClass;
myMethod(out myClass);
avec ref
Class myClass = new Class();
myMethod(ref myClass);
en es tu sure ? Car sur mon bouquin (official course microsoft), ils disent à propos de out,
"La méthode ne fabrique pas sa propre copie (ça ok). Le passage par paramètre out est semblable au passage par le paramètre ref (ok apriori), sauf que la méthode doit être assignée au paramètre out."
et je ne comprends pas cette dernière phrase en fait.
Tant pis sinon je me débrouillerai avec cette réponse.
merci.
il me semble que l'on utilise plus le "out" avec des types primitif ce qui permet de modifier le un parametres int par exemple dans une methode et qu'il soit toujours modifié en dehors de la methode.
Lors de l'appel d'une méthode contenant le mot cléf ref, tu dois le signaler explicitement.
Exemple:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 ///// Passage avec mot clé "ref" /////////////////////////////////////////////// public void ModifValeurRef(ref int Valeur) { // Modification FACULTATIVE Valeur = X; } ///// Passage avec mot clé "out" /////////////////////////////////////////////// public void ModifValeurOut(out int Valeur) { // Modification OBLIGATOIRE Valeur = X; } ///// Main méthod /////////////////////////////////////////////// static void Main() { int i = 0; int j; ModifValeurRef(ref i); ModifValeurOut(i); ModifValeurRef(ref j); // ne passe pas a la compilation ModifValeurOut(j); }