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 :

Problème de surcharge d'une méthode


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut Problème de surcharge d'une 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
     
            public string RechercheSujets(string crit, string typeDocument)
            {
                this._crit = crit;
                this._typeDocument = typeDocument;
                return vaChercherSujets();
            }
            public string RechercheSujets(string crit, string typeRecherche)
            {
                this._crit = crit;
                this._typeRecherche = typeRecherche;
                return vaChercherSujets();
            }
    Comment puis je faire pour surcharger ma méthode sans me prendre cette erreur du compilateur ?

    Error 1 Type 'MaClasse' already defines a member called 'RechercheSujets' with the same parameter types
    Tout ça parce qu'elles ont le même type ? Je pensais que le nom des paramètres suffisait à distinguer les surcharges ! ...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 109
    Points
    109
    Par défaut
    Hey non !

    c'est le nom de la méthode, le type de retour et le type des paramètres qui définissent la signature !
    Maintenant, à mon humble avis, tu devrait surtout différencier le nom de tes méthodes: elles ne font pas la même chose donc .. devraient avoir des noms différents:

    <A la XP style>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public string RechercheSujetsSelonTypeDocument(string crit, string typeDocument)
            {
                ...
            }
            public string RechercheSujetsSelonTypeRecherche(string crit, string typeRecherche)
            {
                ...
            }
    <A la XP style/>

  3. #3
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Comment veux-tu que la machine se débrouille pour savoir de quel string tu parles quand tu feras RechercheSujets("papa", "toto") ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut Ca n'est pas "propre"
    Je ne peux décemment pas vais pas faire autant de méthodes qu'il y a de combinaison de paramètres ! (je n'en ai mis que deux pour l'exemple il y en a beaucoup plus en fait)

    La fonctionnalité de ma méthode étant on ne peut plus basique puisqu'il s'agit de retourner les données d'une table selon différents critères tous plus optionnels les uns que les autres !

    Comment puis je procéder autrement ? Comment font les autres développeurs ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 109
    Points
    109
    Par défaut
    une première méthode qui reçoit une liste variable d'arguments et qui dispatch le travail à d'autres en fonction de ce qu'elle reçoit...
    à part ça, je ne vois pas...

    --
    ElTchoupi

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par ElTchoupi Voir le message
    <A la XP style>
    Ce qui veut dire ?

    Citation Envoyé par sauceaupistou Voir le message
    Comment puis je procéder autrement ? Comment font les autres développeurs ...
    On peut utiliser une énumération, sinon on peut aussi utiliser un objet...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut En fait je n'ai pas tout dit
    Oui un objet aurait été l'idéal, mais la méthode est celle d'un web service.

    Je ne peux tout simplement pas passer par un objet.

    Je crois que finalement je vais restreindre le nombre de surcharges. Ca n'empêchera les utilisateurs d'être content de mon WS.

    Merci pour vos remarques.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 109
    Points
    109
    Par défaut
    C'est juste pour excuser le nom de méthode un peu long:
    la méthode XP recommande des noms de méthodes et de Variables TRES explicites...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut Pour finir ...
    En testant le web service, le protocole soap ne semble pas tenir compte des surcharges de méthodes et il ne propose que la signature avec le moins de paramètres.

    Le problème est donc définitivement réglé.

  10. #10
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut !

    Et pourquoi tu n'ajoute pas un troisieme parametre qui definit le type !

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

Discussions similaires

  1. Problème d'exposant sur une méthode mathématique.
    Par ecobarito dans le forum Débuter
    Réponses: 14
    Dernier message: 29/08/2007, 20h16
  2. Réponses: 2
    Dernier message: 10/05/2007, 17h29
  3. [Débutant] Surcharge d'une méthode
    Par HaTnuX dans le forum Langage
    Réponses: 2
    Dernier message: 18/01/2007, 19h27
  4. [MFC] Surcharge d'une méthode CListCtrl
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 22/12/2005, 22h05
  5. Problème d'héritage d'une méthode protégée
    Par shenron666 dans le forum C++
    Réponses: 9
    Dernier message: 28/04/2005, 23h17

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