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 :

Comparaison de type simple


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Points : 77
    Points
    77
    Par défaut Comparaison de type simple
    Bonjour,

    Je voudrais comparer 2 objets de type simple (par exemple Int32 et UInt64) de manière générique.
    J'ai essayé avec IComparable mais j'ai une exception car les types des objets sont différents
    Avec object.Equals, les objets sont considérés comme différent même si la valeur est la même

    Est-ce qu'il existe un moyen simple de faire ce type de comparaison ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    En utilisant ToString c'est pas beau mais ça marche pour les types simples :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Function Compare(Of T, O)(a As T, b As O) As Boolean
       Return a.ToString = b.ToString
    End Function
    Désolé, c'est du VB.NET !
    eb.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 173
    Points : 485
    Points
    485
    Par défaut
    Pas grave en c# ça donne je crois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Boolean Compare(T a,T b)
    {
       Return a.ToString = b.ToString
    }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Effectivement, c'est pas beau mais c'est efficace

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Si les types restent des types simple du genre byte, int, ubyte, uint, short, long etc alors le plus simple c'est de les caster en long juste pour la comparaison

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Int32 a = 12;
    UInt64 b = 12;
     
    bool c = (long)a == (long)b;
    Mais si maintenant tu utilise des types génériques alors la méthode de ebastien et fozzeuh est la seule façon que je vois pour résoudre ton problème

  6. #6
    Membre à l'essai
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public bool CompareDeuxValues(T value1, T value2) 
    {
       bool estIdentique = false;
        if ( value1CompareTo(value2) == 0)
           estIdentique = true;
        return estIdentique;
    }

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/04/2009, 07h28
  2. Comparaison date type AaAa-Mm
    Par justin92330 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/07/2008, 17h50
  3. Switch/case et comparaison de type gt/lt
    Par sroux dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2006, 09h48
  4. Réponses: 2
    Dernier message: 08/07/2006, 18h44
  5. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 20h30

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