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 :

Fonctions et collections


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Points : 30
    Points
    30
    Par défaut Fonctions et collections
    Bonsoir à tous,

    Voila, je vous expose mon problème:

    J'ai créé une fonction qui, à partir d'un objet de type véhicule, me retourne une collection (d'objets Vehicule) de ces véhicules qui ont besoins d'un entretien rapidement.

    Seulement, il semble que ma fonction soit dans l'incapacité de me retourner cette fameuse collection...

    le code de ma fonction est le suivant:

    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
    public CollectionVehicules vehiculesAentretenir()
            {
                int i;
                bool b;
                Vehicule unVehicule = new Vehicule();
     
                for (i = 1; i <= CollectionVehicules.ColVehicule.Count; i++)//Parcours de la collection
                {
                    unVehicule = (Vehicule)CollectionVehicules.ColVehicule[i];//extraction de l'objet
                    if (necessiteEntretien(unVehicule) == true)
                    {
                        CollectionVehicules.ColVehicule.Add(unVehicule);
                        //Si l'objet vehicule necessite un entretien, ajouter cet objet à la collection.
                    }
                }
                return (CollectionVehicules.ColVehicule);//erreur de conversion...
                /* 
                Le :
                     return((CollectionVehicules)CollectionVehicules.ColVehicule);
                ne fonctionne pas non plus, une erreur de conversion s'affiche...
               */
            }
    • la fonction necessiteentretien retourne un booléen
    • le problème semble venir de la dernière ligne, mais je ne voit pas où il peut être...


    Merci à tous ceux qui me répondront!

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Citation Envoyé par Dadoue Voir le message
    Bonsoir à tous,

    Voila, je vous expose mon problème:

    J'ai créé une fonction qui, à partir d'un objet de type véhicule, me retourne une collection (d'objets Vehicule) de ces véhicules qui ont besoins d'un entretien rapidement.

    Seulement, il semble que ma fonction soit dans l'incapacité de me retourner cette fameuse collection...

    le code de ma fonction est le suivant:

    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
    public CollectionVehicules vehiculesAentretenir()
            {
                int i;
                bool b;
                Vehicule unVehicule = new Vehicule();
     
                for (i = 1; i <= CollectionVehicules.ColVehicule.Count; i++)//Parcours de la collection
                {
                    unVehicule = (Vehicule)CollectionVehicules.ColVehicule[i];//extraction de l'objet
                    if (necessiteEntretien(unVehicule) == true)
                    {
                        CollectionVehicules.ColVehicule.Add(unVehicule);
                        //Si l'objet vehicule necessite un entretien, ajouter cet objet à la collection.
                    }
                }
                return (CollectionVehicules.ColVehicule);//erreur de conversion...
                /* 
                Le :
                     return((CollectionVehicules)CollectionVehicules.ColVehicule);
                ne fonctionne pas non plus, une erreur de conversion s'affiche...
               */
            }
    • la fonction necessiteentretien retourne un booléen
    • le problème semble venir de la dernière ligne, mais je ne voit pas où il peut être...


    Merci à tous ceux qui me répondront!
    Pourquoi ne pas travailler avec des List<Vehicule> ?

    Ca pourrait devenir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<Vehicule> vehiculesAentretenir()
            {
                return CollectionVehicules.Where(vehicule=>necessiteEntretien(vehicule)).ToList();
            }
    Plus compréhensible nan?
    Bon ca c'était pour le côté "ouh ce code m'a l'air bien compliqué pour rien"

    Pour le côté coup de main sur ton code, tant qu'on ne sait pas ce qu'est l'objet CollectionVehicules on peut rien dire

    Erf tant qu'on y est je pense que y'a beaucoup plus que ca à changer dans ton code. Par exemple pourquoi necessiteEntretien n'est pas une méthode membre de Vehicule?

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Pourquoi ne pas travailler avec des List<Vehicule> ?

    Ca pourrait devenir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<Vehicule> vehiculesAentretenir()
            {
                return CollectionVehicules.Where(vehicule=>necessiteEntretien(vehicule)).ToList();
            }
    Plus compréhensible nan?
    +1

    Erf tant qu'on y est je pense que y'a beaucoup plus que ca à changer dans ton code. Par exemple pourquoi necessiteEntretien n'est pas une méthode membre de Vehicule?
    Cela se discute. D'un point de vue grasp pattern on peut se poser la question si l'objet véhicule est l'expert de cette information. A priori je dirais que non et donc que cette méthode ne devrait pas être dans un véhicule. Du coup la signature NecessiteEntretien(Vehicule vehicule) me semble très bien à premier abord. Si en plus la méthode est dans une classe garage/centrediagnostic par exemple c'est encore mieux

Discussions similaires

  1. Fonction qui retourne une collection
    Par superfly dans le forum Oracle
    Réponses: 9
    Dernier message: 25/06/2009, 18h02
  2. Fonction retournant collection
    Par Vince7-7 dans le forum Oracle
    Réponses: 1
    Dernier message: 18/03/2009, 10h30
  3. fonction retournant collection
    Par blopjerem dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/06/2008, 22h10
  4. Réponses: 7
    Dernier message: 03/04/2008, 22h31
  5. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 11h04

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