Output d'une fonction double[] + bool [Résolu]

Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
- 4 févr. 2011 à 12:28
Bonjour,
Je voudrais si il existe un moyen pour qu'une fonction me renvoie comme paramètre de sortie 2 type différents double[] et bool.
Je pensais essayer avec
private Dictionary<double[], bool> LimiteVector(double ex,double ey,double ez,Int32 H0 )
{
Dictionary<double[], bool> Output = new Dictionary<double[], bool>();

return Output;
}
Mais je ne sais pas comment pointer faire
Output.Double[2] = 23.335325
ou
Ouput.Bool = false;

ou alors utiliser les paramètres in et out des fonctions.

Qu'elle serait la méthode la plus propre.

Merci,

www.survey-copter.com
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
22
3
Merci
Salut

Je vois plusieurs solutions :
1) Tu crées une simple structure comme ça :
public struct SRetour
{
    public bool Bool { get; set; }
    public double[] Double { get; set; }
}

Tu pourras ainsi créer ta variable Output de type SRetour et l'utiliser avec Output.Bool ou Output.Double
(Normalement, tu ne peux pas utiliser de type anonyme en retour d'une méthode.)

2) Tu passes un paramètre out
C'est comme ref, sauf que ta variable n'a pas besoin d'être initialisée
private double[] LimiteVector(double ex, double ey, double ez, int H0, out bool outputbool)
{
//...
outputbool = false;
//...
}

et tu l'appelles ainsi :
bool monBool;
double[] monDoubleTab = LimiteVector(1.0, 1.0, 1.0, 2, out monBool);
// Et là, monBool a la bonne valeur

3) Les tableaux sont un type par valeur, donc ils peuvent être null. Est-ce que cela ne pourrait pas te suffire ? (je ne sais pas exactement ce que tu cherches à faire). Je rappelle, si par exemple c'est pour chaque double que tu as besoin d'avoir la possibilité d'une valeur null, que tu peux créer une variable par valeur nullable en ajoutant ? après le type :
double? est un double qui peut avoir la valeur null.

Quelle méthode est préférable ? Je dirais probablement la 3) si celle-ci est suffisante. Sinon, tout dépend de la correspondance entre ton bool et tes double. S'ils sont intimement liés, je dirais la 1). Si ce sont deux valeur indépendantes, la 2).

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog