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

 .NET Discussion :

[Interface] Restreindre type avec héritage ?


Sujet :

.NET

  1. #1
    Membre habitué
    Inscrit en
    Février 2012
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 121
    Points : 157
    Points
    157
    Par défaut [Interface] Restreindre type avec héritage ?
    Bonjour à tous,

    Débutant en prog, je suis amené aujourd'hui à réaliser un écran, avec affichange de données dans une grille, le classique.

    On me demande de créer un user control "générique", utilisable pour d'autres écran, celui-ci doit posséder une liste d'item, faiblement typé.

    je dois ensuite créer un contrôle fils héritant du contrôle ci-dessus, mais cette fois restreindre le type, spécialement en vue de sa futur utilisation.

    Je comprend parfaitement le principe, je sais que je dois utiliser BindingList<T>, IBindingList, mais je ne comprend pas comment, ni le rôle de l'interface dans cela, ni que faire.

    Je sais qu'une interface ne possède que les propriétés et les méthodes non implémentées, et donc je pense que je zappe complètement le rapport ...

  2. #2
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Qu'entend tu par "restreindre le type" ?
    Il doit implémenter une interface spécifique ?

    Tu as la possibilité d'utiliser les clauses "where"
    Ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class Class1<T> where T : ICollection<string>
    (j'ai un doute sur la syntaxe)
    Est ce ce genre de chose que tu souhaites faire ?
    " Je préfère comprendre les gens qui ne me comprennent pas "

  3. #3
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Bonjour.

    IBindingList est l'interface dont les contrôles ont besoin. Une contrôle qui accepte une IBindingList peut accepter n'importe quel type implémentant cette interface, comme un DataView, ou un BindingList<T>.

    BindingList<T> est quant à elle une implémentation fournie par souci de commodité, afin que nous n’ayons pas manuellement à implémenter IBindingList. Elle est destinée à couvrir les scénarios où la source de donnée doit avoir le comportement d'une liste.

    Si tu crées un contrôle présentant une liste d'éléments, celui-ci devrait accepter une IBindingList. On pourra ainsi lui passer une BindingList<T>, un DataView ou n'importe quoi d'autre.

Discussions similaires

  1. [PHP 5.0] Héritage, Interfaces et Type Hinting
    Par alejandro dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2010, 23h18
  2. Une interface de type Logiciel avec JQuery
    Par rambc dans le forum jQuery
    Réponses: 8
    Dernier message: 29/09/2010, 13h13
  3. Réponses: 3
    Dernier message: 08/04/2010, 12h29
  4. Une interface avec héritage
    Par abdelilah dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 26/02/2010, 15h37
  5. type générique avec héritage multiple
    Par apqmwnqmap dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2008, 15h56

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