IComparable インターフェイスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > IComparable インターフェイスの意味・解説 

IComparable インターフェイス

固有の比較メソッド作成するために値型またはクラス実装する、汎用の比較メソッド定義します

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

<ComVisibleAttribute(True)> _
Public Interface IComparable
[ComVisibleAttribute(true)] 
public interface IComparable
[ComVisibleAttribute(true)] 
public interface class IComparable
/** @attribute ComVisibleAttribute(true) */ 
public interface IComparable
ComVisibleAttribute(true) 
public interface IComparable
解説解説
使用例使用例

IComparable実装とその必要条件である CompareTo メソッドについては、次のコード例参照してください

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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IComparable インターフェイス」の関連用語

IComparable インターフェイスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IComparable インターフェイスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS