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 :

Interface generique et contrainte


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Par défaut Interface generique et contrainte
    Bonjour, je de nouveau un problème avec les generics.

    J'ai une interface

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public interface IInterface<T>
        {
            T Method1(T a, T b);
            T Method2(T a, T b);
            T Method3(T a, T b);
               }
    Puis une structure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public struct Strucutre<T,O> where O:IInterface<T>, new()
    {
         public static O _o = new O();
    private readonly T value;
            public Strucutre(T a)
            {
                value = a;
            }
    public static Strucutre<T, O> operator +(Strucutre<T, O> a, Strucutre<T, O> b)
            {
                return o.Method1(a, b); // Probleme ici
            }}

    Le compilateur me dit impossible d'assigner un type <T,O> en T.

    comment faire car j'ai déjà vu un exemple de code fonctionner de cette manière alors je ne vois pas ou est mon erreur

    D'avance merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Method1 prend en paramètre des T, pas des Structure<T, O>.
    Et vu que l'opérateur renvoie un Structure<T, O>, tu ne peux pas non plus renvoyer directement le résultat de Method1 (qui est un T), il faut le passer au constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            public static Strucutre<T, O> operator +(Strucutre<T, O> a, Strucutre<T, O> b)
            {
                return new Strucutre<T, O>(o.Method1(a.value, b.value));
            }}

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/06/2009, 18h33
  2. Interfaces et contraintes génériques
    Par SaumonAgile dans le forum C#
    Réponses: 6
    Dernier message: 18/04/2008, 16h14
  3. [Conception] Interface générique
    Par TabrisLeFol dans le forum Général Java
    Réponses: 3
    Dernier message: 17/02/2006, 07h47
  4. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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