Fonction(out double, , )

Signaler
Messages postés
15
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
20 octobre 2006
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
j'ai une fonction qui me sort DEUX résultats par la commande out (au lieu de return).

qu'elle est la commande pour appeler le résultat (une, deux, ou les deux valeurs)?

Par exemple avec:

public static void MoyenneEtSomme(out double somme, out double moyenne, double a, double b)


{


  somme = a+b;


   moyenne = (a+b)/2;


}

public static void Test()
{
  double a = 12.45;
  double b = 7.55;
  ...??? //appeler les deux variables
}

7 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
  double a = 12.45;
  double b = 7.55;
  double somme;
  double moyenne;

MoyenneEtSomme(out somme, out moyenne, a , b)

<hr size="2" />-Blog-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
oui... et en général, on peut les paramètres out en derniers :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
15
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
20 octobre 2006

C exactement ce que j'ai fait
mais ça me donne une erreur:

'MoyenneEtSomme(out double,out double ,double double)' :"not all code paths return a value"

Je pige pas...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
je devais être fatigué ce matin... j'ai du mal à relire ma phrase...

donc, il y a une obligation avec un paramètre out... il doit obligatoirement être assigner à l'intérieur du block.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
15
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
20 octobre 2006

Scuse moi encore mais tu l'assignes comment donc (je dois aussi etre fatigué)? j'ai essayé pas mal de truc et ça foire toujours...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
public static void MoyenneEtSomme(int out somme, int out moyenne, int a , int b) {
   somme = a + b;
   moyenne = somme / 2;
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
et pour le fun... :)

public static void MoyenneEtSomme(int out somme , float out moyenne, param int[] nbres) {
   somme = 0;
   for (int i=0; i<nbres.Count; i++) {
      somme += nbres[i];
   }

   moyenne = (float)somme / (float)nbres.Count;
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]