Assembly : mscorlib (dans mscorlib.dll)
SyntaxeFunction CompareTo ( _ obj As Object _ ) As Integer
Dim instance As IComparable Dim obj As Object Dim returnValue As Integer returnValue = instance.CompareTo(obj)
int CompareTo (
Object obj
)
int CompareTo (
Object^ obj
)
int CompareTo (
Object obj
)
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. |
NotesCette 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.
ExempleLe code suivant illustre l'utilisation de CompareTo pour comparer un objet Temperature implémentant IComparable avec un autre objet.
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
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; } } }
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; } } };
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-formesWindows 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 version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ