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 :

Imposer une classe qui implemente une interface


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut Imposer une classe qui implemente une interface
    Bonjour,

    J'ai plusieurs classes A1, A2, A3 qui etendent une classe A

    Je veux faire des classes B1, B2, B3 qui etendent A1, A2, A3 en implementant en plus une interface B.

    Mon probleme, c'est que j'aimerai avoir un type "etend A et implemente B" afin de pouvoir utiliser mes objets B1, B2, B3 de maniere générique. Y a t il un moyen en csharp de faire ca ?

    Merci

  2. #2
    Membre extrêmement actif

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    C'est franchement pas clair avec des A,B,C donne plutôt les vrais noms d'objets sinon cela n'a aucun sens.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Tu peux pas faire te faire une interface ITruc que tes classes de base A et B l'implémenteraient?

    Ainsi tout ce qui va hérité de tes classes A et B vont être accessible avec l'interface ITruc ?

  4. #4
    Membre extrêmement actif

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Quand dans le forum d'à côté on parle qu'un héritage correct qui ne nuit pas à la conception se fait sur la sémantique ici on parle de faire hériter A de B et implémenter un truc

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Grosso modo, ce que je voudrais, c'est implementer des controls auquels j'ajouterais des fonctionnalités.
    On aura donc, par exemple :
    Composant
    -> Bouton
    -> Edit

    Je veux donc etendre la classe bouton et la classe edit. Au passage, j'aimerai que les nouveaux implementent aussi une interface "Actionneur" qui definierai une methode init et une methode action.

    Et pour pouvoir les utiliser dans une fonction generique, j'aimerais pouvoir créer un type "Composant qui implémente Actionneur". Comme ca, je pourrais utiliser tous les composant que j'aurais créé ainsi que leurs fonctions correspondant à actionneur. Bien sur, je ne peux pas modifier la classe composant et lui faire implémenter mon interface puisqu'il s'agit d'une classe definie par le framework.

    Une idée ?

  6. #6
    Membre extrêmement actif

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

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    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
    interface IActionneur
    {
    void init();
    void actionner();
    }
     
    //pas sûr que se soit une bonne idée d'hériter d'un control standard (plutôt créer un user control ?)
    class MyEdit: IActionneur, Edit
    {
    void init(){}
    void actionner{}
    }
     
     
    class GenericClass
    {
       public void FaireQuelquechose(IActionneur actionneur) {}
    }
    un truc comme cela pour commencer ? Y'a peut-être d'autres solutions que l'héritage notamment en passant par les méthodes d'extension ou alors en faisant une composition.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2014, 16h25
  2. éxecuter une classe qui contient une classe annonyme
    Par star-watcher dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 09/03/2009, 01h26
  3. Réponses: 1
    Dernier message: 26/02/2009, 15h38
  4. Réponses: 27
    Dernier message: 03/01/2008, 11h07
  5. [REFLEXION] Connaitre toutes les classes qui implémentent une interface
    Par narmataru dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 25/10/2006, 11h00

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