IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Plusieurs retour d'une méthode


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut Plusieurs retour d'une méthode
    Bonjour j'aurai un petite question ,

    j'ai cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public static string Compare(string linkFolder)
            {
                int countSame = 0;
                var logZip = "";
                var dictionary = Directory
                    .EnumerateFiles(linkFolder)
                    .Select(Path.GetFileName)
                    .GroupBy(f => Path.GetFileNameWithoutExtension(f.ToLower()))
                    .Where(g => g.Count() > 1)
                    .ToDictionary(g => g.Key, g => g.ToArray());
     
     
     
                foreach (var kvp  in dictionary)
                {
                    logZip += "Count of same Sample Analysis : " + $"Key : {kvp.Key} \n";
                    foreach (var file in kvp.Value)
                    {    
                        countSame++;
                    }
     
                }
                logZip += "Count Number is : " + countSame/2 + "\n";
                return logZip + countSame ;
            }
    Comment lorsque que j’appelle cette méthode je peux décider du retour qu'elle me donne ? Soit le logZip soit le coutSame

    Auriez vous des idées ?

    Merci beaucoup

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut

    Tu peux renvoyer les deux à la fois (et utiliser une des possibilités suivantes selon les versions du framework et du langage dans lesquelles tu te trouves) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static (string, int) Compare(string linkFolder) {
                // ...
                return (logZip, countSame);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static (string LogZip, int CountSame) Compare(string linkFolder) {
                // ...
                return (logZip, countSame);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static Tuple<string, int> Compare(string linkFolder) {
                // ...
                return new Tuple<string, int>(logZip, countSame);
    }
    Bref, plein de possibilités

  3. #3
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Ok merci mais j'ai pas trop compris je prend un exemple pour plus être clair/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    string Coucou ()
                {
                    string var = "Ok tu passe";
                    int varop = 10;
     
     
     
                    return var + varop;
                }
     
     
                Console.WriteLine(10+Coucou()); // Ici j'aimerais décider la variable que de "Coucou" que je souhaite . Exemple vu que j'ai 10+ avant j'aimerai : 10+varop.Coucou()    <-- Syntaxe fausse évidemment
    En fait je crois que dans tous les cas je ne peux pas parce que si je retourne deux éléments qui ne sont pas du même type je vais avoir un erreur...

    En gros j'ai une fonction qui me compare des noms de fichiers et qui me retourne de logs de ses actions. Mais j'aimerai qu'elle me retourne aussi d'autre choses qu'elle peut mesurer pour éviter de faire 12 méthodes.

    Je m'y prend sûrement pas de la bonne façons...

  4. #4
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Ha pardon je vien de comprendre tu disais de "contourner" le fait qu'une méthode ne peux pas renvoyer différents types de fonctions par ton exemple du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void fonction(int& x, int& y)
    {
    x = 123;
    y = 456;
    }
     
    int a, b;
    fonction(a, b);
    // ici, a vaut 123 et b vaut 456
     
    // et donc ca marche

  5. #5
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Citation Envoyé par BiRoy Voir le message
    Ha pardon je vien de comprendre tu disais de "contourner" le fait qu'une méthode ne peux pas renvoyer différents types de fonctions par ton exemple du style :
    Je ne parle pas de contournement mais d'utiliser une fonctionnalité existante du langage (cf. Tuple C# 7). Essaie et tu verras bien. Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public static (int, string, Exception) Dummy() {
        return (0, "test", new Exception());
    }
     
    public static (int TestInt, string TestString, Exception TestException) DummyNamed() {
        return (0, "test", new Exception());
    }
     
    // ...
    var foo1 = Dummy(); // Dummy les valeurs renvoyées ne sont pas nommées donc tu les utilises comme des éléments de Tuple classiques
    Console.WriteLine(foo1.Item1);
     
    // ...
    var foo2 = DummyNamed(); // DummyNamed les valeurs renvoyées sont nommées donc tu les utilises grâce à leur nom
    Console.WriteLine(foo2.TestInt);

  6. #6
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Incroyable :o

    Merci beaucoup je viens de tester . Je vais me pencher dessus je connaissais pas.

    Merci beaucoup encore au top

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Avant l’existence de Tuple, tu pourrais aussi simplement retourner une structure ou un objet qui contenant les deux valeurs...
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Salut oui effectivement je m'en suis rendu compte en essayant autre chose j'aurai du y penser ¨^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. précision sur la valeur de retour de la méthode GetDirectories
    Par piotrr dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/06/2007, 14h07
  2. Plusieurs retours d'une méthode
    Par yanis97 dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2006, 17h18
  3. Affichage sur plusieurs lignes d'une méthode toString
    Par Flophx dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 24/05/2006, 16h30
  4. [VB.NET]Comment gérer plusieurs boutons en 1 méthode Click ?
    Par Cydreav dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/02/2006, 23h53
  5. Retour de la méthode TransferText
    Par Tatoupi dans le forum Access
    Réponses: 1
    Dernier message: 05/12/2005, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo