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

Windows Forms Discussion :

Utilisation d'une attribut d'une classe générique


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut Utilisation d'une attribut d'une classe générique
    Bonjour,

    Je suis en train d'essayer d'utiliser les generics, et je suis confronté à un problème.

    Pour expliquer simplement, est t'il possible et comment avoir un attribut de type d'une classe générique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      public partial class MyTable : Form
        {
            private MyController<T> controller;
            ....
            public void setController<T>(MyController<T> controller)
            {
                this.controller = controller;
            }
    J'ai une erreur de compilation sur la déclaration de mon attribut uqe je n'arrive pas à contourner/corriger.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le type ou le nom d'espace de noms 'T' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
    Je voudrais donc pouvoir garder un attribut qui est une classe générique.

    Si quelqu'un a une piste, une idée, et surement même un reproche sur ma façon de faire

    Merci d'avance.

  2. #2
    Membre éprouvé

    Étudiant
    Inscrit en
    Août 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 108
    Par défaut
    Bonjour,

    Comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      public partial class MyTable<T> : Form
        {
            private MyController<T> controller;
            ....
            public void setController<T>(MyController<T> controller)
            {
                this.controller = controller;
            }
    A+

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Merci beaucoup pour la réponse.

    J'ai essayé la solution, malheureusement j'ai maintenant pas mal d'erreurs.
    Notamment une dans la classe 'MyTable.Designer.cs' (j'utilise VS).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyTable.Dispose(bool)'*: aucune méthode appropriée n'a été trouvée pour la substitution
    En gros, il n'arrive plus à faire le lien entre la classe MyTable<T> et la classe MyTable issue du designer. Et je ne pense pas qu'il soit judicieux de modifier à la main la classe générée.

    Pourriez vous me guider là dessus?

    Merci d'avance.

  4. #4
    Membre éprouvé

    Étudiant
    Inscrit en
    Août 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 108
    Par défaut
    Oui en effet, j'avais pas prête attention au contexte particulier de l'utilisation de la classe.

    Mais si il vraiment nécessaire d'avoir de la généricité dans votre composant graphique, je ne vois pas d'autres façons.

    Sinon effectivement il n'est pas judicieux de modifier le code généré. Il est préférable d'insérer ce composant dans la fenêtre depuis le constructeur de cette fenêtre, mais ce n'est pas ce qu'il y a de plus pratique... C'est pourquoi il n'y a pas de généricité dans les composants graphiques d'habitude (utilisation de Object).

    A+

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    OK, merci pour ces infos.

    Je vais essayer de ma débrouiller autrement, en me passant des generics pour l'instant!

    Encore merci.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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