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#][2.0] BindingList capricieuse


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut [c#][2.0] BindingList capricieuse
    Bonjour,

    je vous expose mon problème.

    J'ai implémenté une méthode, cette méthode possède la signature suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void InitializeKeys(BindingList<IKey>);
    IKey étant une interface simple demandant d'implémentant 3 propriétés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface IKey {
       string Id { get; set; }
       string Value { get; set; }
       string Description { get; set; }
    }
    donc voila ou se situe mon soucis, dans un objet héritant de celui implémentant ma méthode InitializeKeys, je fais appel a cette meme méthode.
    Alors mon appel, lui passe en argument une BindingList<MotCle>
    MotCle implémentant l'interface IKey
    possedant bien les propriétés requises :
    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
            #region IKey Members
            string IKey.Description
            {
                get { return this.DescFonc; }
                set { Console.Out.WriteLine("value : " + value); }
            }
     
            string IKey.Id
            {
                get { return this.Id; }
                set { Console.Out.WriteLine("value : " + value); }
            }
     
            string IKey.Value
            {
                get { return "<" + this.CodeFonct + ">"; }
                set { Console.Out.WriteLine("value : " + value); }
            }
            #endregion
    et a la compilation ca me dit :
    Error 2 Argument '1': cannot convert from 'System.ComponentModel.BindingList<MotCle>' to 'System.ComponentModel.BindingList<IKey>'
    alors il faut ptet savoir que l'objet MotCle est une classe partielle, que dans l'autre classe partielle definissant cet objet, il y a une propriété Id, je me dis qu'il y a ptet un conflit la dessus, mais la definition des propriétés nécessaires a IKey etant bien distinguées par le prefix IKey, je ne vois pas ou est le soucis...et donc...si ca ne marche pas...quel interet de faire des interfaces....?

    voila...merci d'avance

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bon je n'ai pas trop travaillé avec les interfaces, mais moi ce que je comprends de ton code c'est que ta méthode "InitializeKeys" à besoin d'un "BindingList" contenant des objets de type "IKey" et que tu lui fournis un "BindingList" contenant des objets de type "MotCle". Donc pour moi c'est normal que le compilateur gueule.
    Pour moi une interface assure au développeur que un objet implémentant l'interface possède bien les méthodes définies par l'interface. Mais en aucun cela ne devrait affectés son type.
    Bon maintenant je n'ai pas utilisé d'interface en .Net alors je peut me tromper .

  3. #3
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    bah visiblement oui...c'est normal..
    mais je vais quand meme pas faire un type abstrait...
    ca pourrait revenir au meme quand meme...il peut caster ce MotCle en IKey normalement...l'est pas belu ce compilateur quand meme

  4. #4
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    alors j'ai testé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MotCleCollection collection = MotCle.GetAll();
    BindingList<IKey> list = new BindingList<IKey>();
    foreach (IKey key in collection)
    {
       list.Add(key);
    }
    et ca...aucun problème, la bindingList a bien le meme nombre d'elements et ils sont corrects

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    pour le compilateur ton bindinglist<motcle> n'est pas un bindinglist<ikey>.

  6. #6
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    bah oui..j'ai cru voir...c'est bien con d'ailleurs
    il fait pas d'effor lui aussi

Discussions similaires

  1. [Cookies] Variable de Session capricieuse :/
    Par nikospkrk dans le forum Langage
    Réponses: 8
    Dernier message: 19/08/2006, 13h11
  2. [IconImage] IconImage capricieuse
    Par GLDavid dans le forum Interfaces Graphiques en Java
    Réponses: 12
    Dernier message: 20/06/2006, 14h46
  3. procédure stockée capricieuse
    Par misa dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/01/2006, 11h07
  4. [INSTALL][10gR2] Installation capricieuse
    Par max44410 dans le forum Oracle
    Réponses: 15
    Dernier message: 13/12/2005, 00h34
  5. Balise <DIV> capricieuse..!!
    Par nerik38 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/11/2005, 16h43

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