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] Comment détecter des changements dans une collection ?


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 118
    Points : 70
    Points
    70
    Par défaut [C# 2.0] Comment détecter des changements dans une collection ?
    Bonjour,

    J'aimerais savoir si c'est possible de détecter des changements dans un collection. Biensur, je peux développer une surcouche qui lève des événements sur le Add, Remove, etc. Mais je ne trouve pas cela élégant du tout.

    Des suggestions? Merci!

    Martin

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu peux tester si le nombre d'élement mais c'est dangereux car si tu fais un add et remove le nombre d'element sera inchangé. Autrement tu a des methode onInsert, onAdd, onRemove tu peux être faire quelque chose avec cela. Ce sont des methodes appelés avant l'insertion, l'ajout et la suppression

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    J'ai bien peur que tu doives faire une surcouche pour déclencher toi-même les événements. Tu peux éventuellement procéder ainsi :

    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
     
    class Mylist<T> : List<T>
        {
            public delegate void AddedEvent<U>(Mylist<U> sender, U item);
     
            public event AddedEvent<T> Added;
     
            protected void OnAdded(T item)
            {
                if (Added != null)
                    Added(this, item);
            }
     
            public new void Add(T item)
            {
                base.Add(item);
                OnAdded(item);
            }
        }
    Citation Envoyé par gcorbineau
    Tu peux tester si le nombre d'élement mais c'est dangereux car si tu fais un add et remove le nombre d'element sera inchangé. Autrement tu a des methode onInsert, onAdd, onRemove tu peux être faire quelque chose avec cela. Ce sont des methodes appelés avant l'insertion, l'ajout et la suppression
    Tester le nombre d'éléments en permanance . Je n'arrive pas à trouver ces méthodes onAdd, onRemove etc. De quelles collections parles-tu ?

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ceux qui ont pris l'habitude d'implémenter leurs propres collections typées déjà depuis 1.x savent que tous les dérivés de CollectionBase accèdent par héritage aux méthodes protégées OnX :
    OnClear OnClearComplete OnInsert OnInsertComplete OnRemove OnRemoveComplete OnSet OnSetComplete OnValidate
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Ah oui, il me semblait bien les avoir déjà vues quelque part, merci neguib.

  6. #6
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 118
    Points : 70
    Points
    70
    Par défaut
    Ohhh ! Merci !

    Je vais étudier ca !

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

Discussions similaires

  1. [Débutant] comment déplacer l'axe des ordonnées dans une courbe
    Par khalid_info dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/12/2012, 14h30
  2. [Débutant] Comment modifier la taille des points dans une legende ?
    Par stodak dans le forum MATLAB
    Réponses: 4
    Dernier message: 28/03/2012, 18h36
  3. Réponses: 9
    Dernier message: 07/10/2010, 18h49
  4. Réponses: 5
    Dernier message: 15/01/2010, 20h32
  5. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 13h53

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