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 :

Classe Générique avec paramètre plusieurs classes c'est possible ?


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut Classe Générique avec paramètre plusieurs classes c'est possible ?
    Bonjour

    Est-ce peut on créer une classe générique qui peut prendre en paramètre plusieurs classe de noms différentes?
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class ResponseGenerique<T> where T :X,Y,Z,V,W ???
    Enfait , mon problème est de récupérer une variable qui est commune dans 7 classes différentes et dans cette variable nous avons plusieurs champs (dans les 7 cas les champs sont les mêmes )
    je suis entrain de chercher si on peut le faire du manière générique pour éviter la répétition dans le code
    c'est possible ou non ?

    Merci par avance
    Bien Cordialement

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    et faire dériver tes 7 classes d'une classe mère qui contiendrait lesdits attributs (et pourquoi pas ta méthode 'reponse'), ça peux pas te convenir comme solution ?
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Citation Envoyé par genius4evers Voir le message
    Bonjour

    Est-ce peut on créer une classe générique qui peut prendre en paramètre plusieurs classe de noms différentes?
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class ResponseGenerique<T> where T :X,Y,Z,V,W ???
    Enfait , mon problème est de récupérer une variable qui est commune dans 7 classes différentes et dans cette variable nous avons plusieurs champs (dans les 7 cas les champs sont les mêmes )
    je suis entrain de chercher si on peut le faire du manière générique pour éviter la répétition dans le code
    c'est possible ou non ?

    Merci par avance
    Bien Cordialement
    Oui tu peux spécifier plusieurs classe pour ton générique mais c'est pas pour autant que tu auras accès directement depuis ton générique à la propriété qui t'intéresse même si elle est commune aux 7 classes.

    Sois tu fais comme l'a suggéré jopopmk en les faisant toutes dérivé d'une même classe si ça a du sens ou s'il ne dérive pas déjà d'une classe ou la solution qui me parait la plus appropriée dans ton cas l'utilisation d'une interface: https://msdn.microsoft.com/fr-fr/library/87d83y5b.aspx

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Comme l'ont dit Youtpout et jojopmk, l'idée serait effectivement soit de faire dériver toutes tes classes d'une classe mère qui a la propriété commune soit par une interface qui possède la propriété commune (passe par des propriétés au lieu de variables directement, sinon tu ne pourrais pas utiliser une interface).

    Regarde bien le lien passé par Youtpout sur les interfaces.

    Mais cela dit, il est possible que le code de toutes les classes que tu mentionnes ne t'appartiennent pas forcément et dans ce cas où tu ne peux pas les modifier, il existe une autre solution : le pattern "Adapter".
    L'idée est de faire ton interface avec la propriété que tu veux, puis de faire les classes qui l'implémentent en encapsulant les objets qui ne t'appartiennent pas. J'ai trouvé ici, sur développez.com, un très bon tutoriel du pattern assez bien expliqué et même assez drôle d'ailleurs. (clique sur l'hyperlien pour y accéder directement )

Discussions similaires

  1. Classe générique avec une Enum
    Par Galevsky dans le forum Langage
    Réponses: 5
    Dernier message: 12/09/2012, 11h15
  2. Passer paramètre depuis classe "générique"
    Par fxbrg dans le forum Windows Forms
    Réponses: 0
    Dernier message: 20/04/2009, 12h33
  3. Réponses: 5
    Dernier message: 15/05/2008, 22h19
  4. Association d'un DataTemplate (avec event) à plusieurs classes
    Par stephanie.gaillard dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 03/04/2008, 08h56
  5. Réponses: 15
    Dernier message: 21/08/2006, 01h41

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