This documentation is archived and is not being maintained.

IComparable Interface

Defines a generalized comparison method that a value type or class implements to create a type-specific comparison method.

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

'Declaration
<ComVisibleAttribute(True)> _
Public Interface IComparable
'Usage
Dim instance As IComparable

/** @attribute ComVisibleAttribute(true) */ 
public interface IComparable
ComVisibleAttribute(true) 
public interface IComparable
Not applicable.

This interface is implemented by types whose values can be ordered; for example, the numeric and string classes.

A value type or class implements the CompareTo method to create a type-specific comparison method suitable for purposes such as sorting.

The following code sample illustrates the implementation of IComparable and the requisite CompareTo method.

Public Class Temperature
    Implements IComparable

    ' The value holder
    Protected m_value As Double

    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

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

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

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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0
Show: