IComparable.CompareTo, méthode (System)

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

Remarque : cette méthode est nouvelle dans le .NET Framework version 2.0.

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

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

SyntaxeSyntaxe


Visual Basic (Déclaration)
Function CompareTo ( _
    other As T _
) As Integer


Visual Basic (Utilisation)
Dim instance As IComparable(Of T)
Dim other As T
Dim returnValue As Integer

returnValue = instance.CompareTo(other)


C#
int CompareTo (
    T other
)


C++
int CompareTo (
    T other
)


J#
int CompareTo (
    T other
)


JScript
function CompareTo (
    other : T
) : int

Paramètres

other

Objet à comparer avec cet objet.

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érieur à zéro

Cet objet est inférieur au paramètre other.

Zéro

Cet objet est égal à other.

Supérieur à zéro

Cet objet est supérieur à other.

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.

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

L'exemple de code suivant illustre l'implémentation de IComparable pour un objet Temperature simple. L'exemple crée une collection SortedList de chaînes avec les clés d'objet Temperature et ajoute plusieurs paires de températures et de chaînes hors séquence. La collection SortedList utilise l'implémentation IComparable pour trier les entrées de liste, qui sont alors affichées par ordre de température croissante.



Visual Basic
Imports System
Imports System.Collections.Generic

Public Class Temperature
    Implements IComparable(Of Temperature)

    ' Implement the generic CompareTo method. In the Implements statement,
    ' specify the Temperature class for the type parameter of the
    ' generic IComparable interface. Use that type for the parameter
    ' of the CompareTo method.
    '
    Public Overloads Function CompareTo(ByVal other As Temperature) As Integer _
        Implements IComparable(Of Temperature).CompareTo

        ' The temperature comparison depends on the comparison of the
        ' the underlying Double values. Because the CompareTo method is
        ' strongly typed, it is not necessary to test for the correct
        ' object type.
        Return m_value.CompareTo(other.m_value)
    End Function

    ' The underlying temperature value.
    Protected m_value As Double = 0.0

    Public ReadOnly Property Celsius() As Double
        Get
            Return m_value - 273.15
        End Get
    End Property

    Public Property Kelvin() As Double
        Get
            Return m_value
        End Get
        Set(ByVal Value As Double)
            If value < 0.0 Then 
                Throw New ArgumentException("Temperature cannot be less than absolute zero.")
            Else
                m_value = Value
            End If
        End Set
    End Property

    Public Sub New(ByVal degreesKelvin As Double)
        Me.Kelvin = degreesKelvin 
    End Sub
End Class

Public Class Example
    Public Shared Sub Main()
        Dim temps As New SortedList(Of Temperature, String)

        ' Add entries to the sorted list, out of order.
        temps.Add(New Temperature(2017.15), "Boiling point of Lead")
        temps.Add(New Temperature(0), "Absolute zero")
        temps.Add(New Temperature(273.15), "Freezing point of water")
        temps.Add(New Temperature(5100.15), "Boiling point of Carbon")
        temps.Add(New Temperature(373.15), "Boiling point of water")
        temps.Add(New Temperature(600.65), "Melting point of Lead")

        For Each kvp As KeyValuePair(Of Temperature, String) In temps
            Console.WriteLine("{0} is {1} degrees Celsius.", kvp.Value, kvp.Key.Celsius)
        Next
    End Sub
End Class

' This code example produces the following output:
'
'Absolute zero is -273.15 degrees Celsius.
'Freezing point of water is 0 degrees Celsius.
'Boiling point of water is 100 degrees Celsius.
'Melting point of Lead is 327.5 degrees Celsius.
'Boiling point of Lead is 1744 degrees Celsius.
'Boiling point of Carbon is 4827 degrees Celsius.
'


C#
using System;
using System.Collections.Generic;

public class Temperature : IComparable<Temperature>
{
    // Implement the CompareTo method. For the parameter type, Use 
    // the type specified for the type parameter of the generic 
    // IComparable interface. 
    //
    public int CompareTo(Temperature other)
    {
        // The temperature comparison depends on the comparison of the
        // the underlying Double values. Because the CompareTo method is
        // strongly typed, it is not necessary to test for the correct
        // object type.
        return m_value.CompareTo(other.m_value);
    }

    // The underlying temperature value.
    protected double m_value = 0.0;

    public double Celsius    
    {
        get
        {
            return m_value - 273.15;
        }
    }

    public double Kelvin    
    {
        get
        {
            return m_value;
        }
        set
        {
            if (value < 0.0)
            {
                throw new ArgumentException("Temperature cannot be less than absolute zero.");
            }
            else
            {
                m_value = value;
            }
        }
    }

    public Temperature(double degreesKelvin)
    {
        this.Kelvin = degreesKelvin;
    }
}

public class Example
{
    public static void Main()
    {
        SortedList<Temperature, string> temps = 
            new SortedList<Temperature, string>();

        // Add entries to the sorted list, out of order.
        temps.Add(new Temperature(2017.15), "Boiling point of Lead");
        temps.Add(new Temperature(0), "Absolute zero");
        temps.Add(new Temperature(273.15), "Freezing point of water");
        temps.Add(new Temperature(5100.15), "Boiling point of Carbon");
        temps.Add(new Temperature(373.15), "Boiling point of water");
        temps.Add(new Temperature(600.65), "Melting point of Lead");

        foreach( KeyValuePair<Temperature, string> kvp in temps )
        {
            Console.WriteLine("{0} is {1} degrees Celsius.", kvp.Value, kvp.Key.Celsius);
        }
    }
}

/* This code example produces the following output:

Absolute zero is -273.15 degrees Celsius.
Freezing point of water is 0 degrees Celsius.
Boiling point of water is 100 degrees Celsius.
Melting point of Lead is 327.5 degrees Celsius.
Boiling point of Lead is 1744 degrees Celsius.
Boiling point of Carbon is 4827 degrees Celsius.

*/


C++
#using <System.dll>

using namespace System;
using namespace System::Collections::Generic;

public ref class Temperature: public IComparable<Temperature^> {

protected:
   // The value holder
   Double m_value;

public:
   // Implement the CompareTo method. For the parameter type, Use 
   // the type specified for the type parameter of the generic 
   // IComparable interface. 
   //
   virtual Int32 CompareTo( Temperature^ other ) {

      // The temperature comparison depends on the comparison of the
      // the underlying Double values. Because the CompareTo method is
      // strongly typed, it is not necessary to test for the correct
      // object type.
      return m_value.CompareTo( other->m_value );
   }

   property Double Celsius {
      Double get() {
         return m_value + 273.15;
      }
   }

   property Double Kelvin {
      Double get() {
         return m_value;
      }
      void set( Double value ) {
         if (value < 0)
            throw gcnew ArgumentException("Temperature cannot be less than absolute zero.");
         else
            m_value = value;
      }
   }

   Temperature(Double degreesKelvin) {
      this->Kelvin = degreesKelvin;
   }
};

int main() {
   SortedList<Temperature^, String^>^ temps = 
      gcnew SortedList<Temperature^, String^>();

   // Add entries to the sorted list, out of order.
   temps->Add(gcnew Temperature(2017.15), "Boiling point of Lead");
   temps->Add(gcnew Temperature(0), "Absolute zero");
   temps->Add(gcnew Temperature(273.15), "Freezing point of water");
   temps->Add(gcnew Temperature(5100.15), "Boiling point of Carbon");
   temps->Add(gcnew Temperature(373.15), "Boiling point of water");
   temps->Add(gcnew Temperature(600.65), "Melting point of Lead");

   for each( KeyValuePair<Temperature^, String^>^ kvp in temps )
   {
      Console::WriteLine("{0} is {1} degrees Celsius.", kvp->Value, kvp->Key->Celsius);
   }
}

/* This code example productes the following output:

Absolute zero is 273.15 degrees Celsius.
Freezing point of water is 546.3 degrees Celsius.
Boiling point of water is 646.3 degrees Celsius.
Melting point of Lead is 873.8 degrees Celsius.
Boiling point of Lead is 2290.3 degrees Celsius.
Boiling point of Carbon is 5373.3 degrees Celsius.

*/
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

.NET Compact Framework

Prise en charge dans : 2.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/43hc6wht.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

7 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-4816
Document créé le 30/10/06 01:29, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-43hc6wht.html Document affiché 5 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

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

Document genere en :
0,74 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Quand on a peur dans la vie, c'est parce qu'on se sait pas quelle décision prendre.

Bernard Werber [Les Thanatonautes]
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 00:38, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)