IComparable.CompareTo, méthode (System)

Bibliothèque de classes .NET Framework 
IComparable.CompareTo, méthode 

Compare l'instance en cours à un objet du même type.

Espace de noms : System
Assembly : mscorlib (dans mscorlib.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Function CompareTo ( _
    obj As Object _
) As Integer


Visual Basic (Utilisation)
Dim instance As IComparable
Dim obj As Object
Dim returnValue As Integer

returnValue = instance.CompareTo(obj)


C#
int CompareTo (
    Object obj
)


C++
int CompareTo (
    Object^ obj
)


J#
int CompareTo (
    Object obj
)


JScript
function CompareTo (
    obj : Object
) : int

Paramètres

obj

Objet à comparer à cette instance.

Valeur de retour

Entier signé 32 bits qui indique l'ordre relatif des objets comparés. La valeur de retour a les significations suivantes :
 

Valeur

Signification

Inférieure à zéro

Cette instance est inférieure à obj.

Zéro

Cette instance est égale à obj.

Supérieure à zéro

Cette instance est supérieure à obj.

ExceptionsExceptions
Type d'exceptionCondition

ArgumentException

obj n'est pas du même type que cette instance.

NotesNotes

Cette méthode n'est qu'une définition et doit être implémentée par une classe ou un type valeur spécifiques. La signification des comparaisons « inférieur à », « égal à » et « supérieur à » dépend de l'implémentation.

Par définition, tout objet est supérieur à référence Null (Nothing en Visual Basic) et deux références null sont égales.

Le paramètre obj doit être du même type que la classe ou que le type valeur qui implémente cette interface ; sinon, ArgumentException est levé.

Remarques à l'attention des implémenteurs Pour les objets A, B et C, les règles suivantes doivent être appliquées : A.CompareTo(A) est nécessaire pour retourner zéro. Si A.CompareTo(B) retourne zéro, B.CompareTo(A) doit retourner zéro. Si A.CompareTo(B) retourne zéro et si B.CompareTo(C) retourne zéro, A.CompareTo(C) doit retourner zéro. Si A.CompareTo(B) retourne une valeur différente de zéro, B.CompareTo(A) doit retourner une valeur du signe opposé. Si A.CompareTo(B) retourne une valeur x différente de zéro et si B.CompareTo(C) retourne une valeur y du même signe que x, A.CompareTo(C) doit retourner une valeur du même signe que x et y.

Remarques à l'attention des appelants Utilisez la méthode CompareTo pour déterminer l'ordre des instances d'une classe.

ExempleExemple

Le code suivant illustre l'utilisation de CompareTo pour comparer un objet Temperature implémentant IComparable avec un autre objet.



Visual Basic
Public Class Temperature
    Implements IComparable

    Public Overloads Function CompareTo(ByVal obj As Object) As Integer _
        Implements IComparable.CompareTo

        If TypeOf obj Is Temperature Then
            Dim temp As Temperature = CType(obj, Temperature)

            Return m_value.CompareTo(temp.m_value)
        End If

        Throw New ArgumentException("object is not a Temperature")
    End Function

    ' The value holder
    Protected m_value As Integer

    Public Property Value() As Integer
        Get
            Return m_value
        End Get
        Set(ByVal Value As Integer)
            m_value = Value
        End Set
    End Property

    Public Property Celsius() As Integer
        Get
            Return (m_value - 32) / 2
        End Get
        Set(ByVal Value As Integer)
            m_value = Value * 2 + 32
        End Set
    End Property
End Class


C#
public class Temperature : IComparable {
    /// <summary>
    /// IComparable.CompareTo implementation.
    /// </summary>
    public int CompareTo(object obj) {
        if(obj is Temperature) {
            Temperature temp = (Temperature) obj;

            return m_value.CompareTo(temp.m_value);
        }
        
        throw new ArgumentException("object is not a Temperature");    
    }

    // The value holder
    protected int m_value;

    public int Value {
        get {
            return m_value;
        }
        set {
            m_value = value;
        }
    }

    public int Celsius {
        get {
            return (m_value-32)/2;
        }
        set {
            m_value = value*2+32;
        }
    }
}


C++
public ref class Temperature: public IComparable {
   /// <summary>
   /// IComparable.CompareTo implementation.
   /// </summary>
protected:
   // The value holder
   Double m_value;

public:
   virtual Int32 CompareTo( Object^ obj ) {
      if ( obj->GetType() == Temperature::typeid ) {
         Temperature^ temp = dynamic_cast<Temperature^>(obj);

         return m_value.CompareTo( temp->m_value );
      }

      throw gcnew ArgumentException(  "object is not a Temperature" );
   }

   property Double Value {
      Double get() {
         return m_value;
      }
      void set( Double value ) {
         m_value = value;
      }
   }

   property Double Celsius  {
      Double get() {
         return (m_value - 32) / 1.8;
      }
      void set( Double value ) {
         m_value = value * 1.8 + 32;
      }
   }
};


J#
public class Temperature implements IComparable
{
    /// <summary>
    /// IComparable.CompareTo implementation.
    /// </summary>
    public int CompareTo(Object obj)
    {
        if (obj instanceof Temperature) {
            Temperature temp = (Temperature)obj;
            return ((Int32)mValue).CompareTo(temp.mValue);
        }
        throw new ArgumentException("object is not a Temperature");
    } //CompareTo

    // The value holder
    protected int mValue;

    /** @property
     */
    public int get_Value()
    {
        return mValue;
    }//get_Value

    /** @property
     */
    public void set_Value(int value)
    {
        mValue = value;
    }//set_Value

    /** @property
     */
    public int get_Celsius()
    {
        return (mValue - 32) / 2;
    }//get_Celsius

    /** @property 
     */
    public void set_Celsius(int value)
    {
        mValue = value * 2 + 32;
    }//set_Celsius
} //Temperature
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.icomparable.compareto.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-5750
Document créé le 30/10/06 00:57, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.icomparable.compareto.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,42 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
La grandeur de l'homme est dans sa décision d'être plus fort que sa condition.

Albert Camus
 
l'infobrol
Nous sommes le Vendredi 01 Juin 2012, 04:38, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)