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 :

[C#] Surcharge de constructeur


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Par défaut [C#] Surcharge de constructeur
    Bonjour,

    Question bête : existe il un moyen de faire appel à un constructeur en fonction des arguments d'appel ?

    En fait je veux changer le message d'une Exception (qui est en readOnly et ne peut se modifier qu'avec le constructeur) en fonction des paramètres d'appel.

    Je crée donc une classe Sous_Exception, dérivée de ApplicationException. Est ce que je peux faire

    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
    public class Sous_Exception : ApplicationException
    {
           public Sous_Exception(string message)
                : base(message)
            {
            }
     
            public Sous_Exception(String cat,String param)
            {
                    if(cat.Equals("Categorie 1")
                    {
                          base("Catégorie 1, erreur sur "+param);
                    }
                    else
                    {
                          base("Catégorie 2, erreur sur "+param);
                    }
            }
     }
    Je sais que le code ne marche pas comme ça, mais y-a t'il une manière de le faire de cette manière ?
    (autre que de déclarer deux classes filles de Sous_Exception, Categorie1_Exception et Categorie2_Exception)

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Non. Tu peux par contre mettre ta logique dans le base(...) lui même, et extraire cette logique dans une méthode si elle est trop complexe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     public Sous_Exception(String cat,String param) : base(cat.Equals("Categorie 1") ? "Catégorie 1, erreur sur "+param : "Catégorie 2, erreur sur "+param)
    {
    }
    // ou bien
    private string MakeMessage(String cat,String param)
    {
       if(cat.Equals("Categorie 1")
                          return "Catégorie 1, erreur sur "+param;
                    else
                          return "Catégorie 2, erreur sur "+param;
    }
    public Sous_Exception(String cat,String param) : base(MakeMessage(cat, param))
    {
    }

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 82
    Par défaut
    J'en étais arrivé également à cette conclusion (utiliser une méthode qui permette de récupérer le message à partir des paramètres d'entrée dans la classe de base).

    Merci quand même pour la réponse et la syntaxe !

    Bon. Je sais pas si je suis fatigué ou si on ne peut pas le faire soi-même, mais c'est résolu

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

Discussions similaires

  1. Surcharger un constructeur de classe
    Par pdgnr dans le forum C++Builder
    Réponses: 5
    Dernier message: 09/11/2006, 10h17
  2. [POO] Surcharge de constructeur
    Par loganblack dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2006, 12h26
  3. Réponses: 19
    Dernier message: 19/04/2006, 10h16
  4. [POO] surcharger le constructeur
    Par wdionysos dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2006, 15h42
  5. Surcharge de constructeur???
    Par Sunsawe dans le forum Général Python
    Réponses: 3
    Dernier message: 14/03/2006, 17h26

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