(0) exportieren Drucken
Alle erweitern

IComparable-Schnittstelle

Definiert eine allgemeine Vergleichsmethode, die von einem Werttyp oder einer Klasse für die Erstellung einer typspezifischen Vergleichsmethode implementiert wird.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)] 
public interface IComparable
/** @attribute ComVisibleAttribute(true) */ 
public interface IComparable
ComVisibleAttribute(true) 
public interface IComparable

Diese Schnittstelle wird von Typen implementiert, deren Werte geordnet werden können, beispielsweise numerische Typen und Zeichenfolgenklassen.

Eine Werttyp oder eine Klasse implementiert die CompareTo-Methode zur Erstellung einer typspezifischen Vergleichsmethode, die sich beispielsweise zum Sortieren o. ä. eignet.

Da folgende Codebeispiel veranschaulicht das Implementieren von IComparable und der erforderlichen CompareTo-Methode.

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Anzeigen:
© 2014 Microsoft