このドキュメントはアーカイブされており、メンテナンスされていません。

IComparable.CompareTo メソッド

現在のインスタンスを同じ型の別のオブジェクトと比較します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)

int CompareTo (
	Object obj
)
int CompareTo (
	Object obj
)
function CompareTo (
	obj : Object
) : int

パラメータ

obj

このインスタンスと比較するオブジェクト。

戻り値

比較対象オブジェクトの相対順序を示す 32 ビット符号付き整数。戻り値の意味は次のとおりです。

説明

0 より小さい値

このインスタンスは obj よりも小さくなっています。

0

このインスタンスは obj と等価です。

0 より大きい値

このインスタンスは obj よりも大きくなっています。

例外の種類条件

ArgumentException

obj の型がこのインスタンスの型と異なります。

このメソッドは定義するだけなので、実際に使用する場合は、特定のクラスや値で実装する必要があります。比較における "より小さい"、"等価"、および "より大きい" の意味は、個別の実装によって異なります。

定義により、すべてのオブジェクトは null 参照 (Visual Basic では Nothing) よりも大きく、また 2 つの null 参照は互いに等しくなります。

obj パラメータは、このインターフェイスを実装するクラスまたは値型と同じ型である必要があります。それ以外の場合は、ArgumentException がスローされます。

実装時の注意 オブジェクト A、B、C について、次の条件が満たされる必要があります。 A.CompareTo(A) は 0 を返す必要があります。 A.CompareTo(B) が 0 を返す場合は、B.CompareTo(A) も 0 を返す必要があります。 A.CompareTo(B) が 0 を返し、B.CompareTo(C) が 0 を返す場合は、A.CompareTo(C) も 0 を返す必要があります。 A.CompareTo(B) が 0 以外の値を返す場合、B.CompareTo(A) は反対の符号の値を返す必要があります。 A.CompareTo(B) が 0 でない値 x を返し、B.CompareTo(C)x と同じ符号の値 y を返す場合、A.CompareTo(C)x および y と同じ符号の値を返す必要があります。

呼び出し時の注意 CompareTo メソッドを使用して、クラスのインスタンスの順序を決定します。

CompareTo を使用して、IComparable を実装している Temperature オブジェクトを別のオブジェクトと比較する方法については、次のコード例を参照してください。

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

Windows 98, Windows 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

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
表示: