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# .NET2.0] Comparaison d'objets


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    mow
    mow est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Par défaut [C# .NET2.0] Comparaison d'objets
    Bonjour,

    Comment savoir la manière avec laquelle le compilateur compare 2 objets de même type ? Je ne cherche pas à savoir si un objet est égal à un autre mais plutôt si il est plus petit ou plus grand qu'un autre !

    Bien sûr, l'objet dont il serait question ne fait pas partie des types standards mais représenterait par exemple une classe Personne comme celle ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Personne
        {
            private int _Id;
            private string m_Nom;
            private string m_Prenom;
            ...
            ...
         }
    En fait, lorsque je vérifierais si l'un est plus grand que l'autre j'aimerais que cela se fasse en tenant compte du nom et du prenom et non pas de l'id ?


    Merci d'avance,
    Mow

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Il faut que tu définisse toi même la façon de comparer deux objets Personne. Le compilo ne peut pas deviner faire la comparaison sur le prénom.

    Il faut surcharger les opérateur < et >

    Ici je me base sur la longueur du prénom pour comparer, mais tu peux faire ce que tu veux.
    Code C# : 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
     
    public class Personne
    {
        private int _Id;
        private string m_Nom;
        private string m_Prenom;
        public Personne(int id, string p, string n)
        {
            _Id = id; m_Prenom = p; m_Nom = n;
        }
        public static bool operator >(Personne p1, Personne p2)
        {
            return p1.m_Prenom.Length > p2.m_Prenom.Length;
        }
        public static bool operator <(Personne p1, Personne p2)
        {
            return p1.m_Prenom.Length < p2.m_Prenom.Length;
        }
    }

    Après tu peux faire ça:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Personne p1 = new Personne(1, "toto", "toto");
    Personne p2 = new Personne(2, "toto2", "toto2");
     
    if (p1 < p2)
           MessageBox.Show( "p1 est plus petit que p2" );
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    mow
    mow est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Par défaut
    Merci pour l'info...
    Je pensais bien qu'il fallait définir quelque chose au sein de ma classe mais je ne pensais que redéfinir les opérateurs ">" et "<" suffiraient.
    Pour l'instant je n'ai pas essayé mais je n'ai pas de doute dessus ; sortir une telle solution n'est pas innée à mon avis.

    Merci
    Mow

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

Discussions similaires

  1. comparaison procédural - objet svp ?
    Par Nothingness0x dans le forum Langages de programmation
    Réponses: 85
    Dernier message: 08/03/2016, 01h18
  2. Comparaisons d'objets GregorianCalendar
    Par Blu3b3rry dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 23/05/2009, 19h14
  3. Comparaison d'objet avec ==
    Par bubulemaster dans le forum Débuter
    Réponses: 8
    Dernier message: 30/05/2008, 21h04
  4. Java, Set et comparaison d'objets
    Par Invité dans le forum Langage
    Réponses: 8
    Dernier message: 12/09/2007, 13h34
  5. Réponses: 21
    Dernier message: 04/05/2006, 11h09

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