C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のUInt64.CompareTo()メソッドとは?構文と使い方を実例付きで解説

C#のUInt64.CompareTo()メソッドは、現在のインスタンス(呼び出し元のUInt64値)と、指定されたオブジェクトまたはUInt64値を比較し、両者の相対的な大小関係を示す整数値を返すメソッドです。

UInt64型は64ビットの符号なし整数(範囲:0 ~ 18,446,744,073,709,551,615)を表すため、大きな正の数値同士の比較に適しています。

構文

UInt64.CompareTo()メソッドには、以下の2つのオーバーロードがあります。

public int CompareTo(object val);
public int CompareTo(ulong val);

1つ目の構文では、比較対象として任意のオブジェクトを指定します。2つ目の構文では、比較対象として符号なし整数(ulong)を直接指定します。

戻り値の意味

  • 0:現在のインスタンスが比較対象の値と等しい場合
  • 0未満の値:現在のインスタンスが比較対象の値より小さい場合
  • 0より大きい値:現在のインスタンスが比較対象の値より大きい場合

なお、object型を受け取るオーバーロードを使用する際に、引数がUInt64型でない場合はArgumentExceptionがスローされる点に注意してください。

使用例1:ulong型同士の比較

まず、ulong型の値同士を比較する基本的な例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      ulong val1 = 257876;
      ulong val2 = 5657655;
      int res = val1.CompareTo(val2);
      Console.WriteLine("Return value (comparison) = "+res);
      if (res > 0)
         Console.WriteLine("val1 > val2");
      else if (res < 0)
         Console.WriteLine("val1 < val2");
      else
         Console.WriteLine("val1 = val2");
   }
}

出力結果

このコードを実行すると、次の出力が得られます。

Return value (comparison) = -1
val1 < val2

val1(257876)はval2(5657655)よりも小さいため、CompareTo()メソッドは負の値「-1」を返し、「val1 < val2」と表示されます。

使用例2:object型との比較

続いて、object型にボックス化されたUInt64値と比較する例です。

using System;
public class Demo {
   public static void Main(){
      ulong val1 = 258768768;
      object val2 = (ulong)1765765;
      int res = val1.CompareTo(val2);
      Console.WriteLine("Return value (comparison) = "+res);
      if (res > 0)
         Console.WriteLine("val1 > val2");
      else if (res < 0)
         Console.WriteLine("val1 < val2");
      else
         Console.WriteLine("val1 = val2");
   }
}

出力結果

このコードを実行すると、次の出力が得られます。

Return value (comparison) = 1
val1 > val2

val1(258768768)はval2(1765765)よりも大きいため、CompareTo()メソッドは正の値「1」を返し、「val1 > val2」と表示されます。

まとめ

UInt64.CompareTo()メソッドを使うことで、64ビット符号なし整数の大小比較を簡単に行えます。戻り値の符号(負・ゼロ・正)を判定することで、等しい・小さい・大きいという3つの状態を効率的に処理できるのが特徴です。ソート処理や条件分岐など、数値比較が必要な場面で活用してみてください。

  1. C#のUInt16.Equalsメソッドとは?使い方をサンプルコード付きで解説

    C#のUInt16.Equals()メソッドは、現在のインスタンスが指定したオブジェクトまたはUInt16(16ビット符号なし整数)の値と等しいかどうかを示すbool値を返すメソッドです。構文UInt16.Equals()メソッドには、以下の2種類の構文があります。public override bool Equals (object ob); public bool Equals (ushort ob);1つ目の構文のパラメータobは、このインスタンスと比較する対象のオブジェクトです。2つ目の構文のパラメータobは、このインスタンスと比較する16ビット符号なし整数(ushort)です。戻り値

  2. C#のUInt16.CompareTo()メソッドの使い方をサンプルコード付きで解説

    C#のUInt16.CompareTo()メソッドは、現在のインスタンスと指定されたオブジェクトまたはUInt16値を比較し、両者の相対的な大小関係を示す整数値を返します。数値の大小判定やソート処理などで活用できる便利なメソッドです。 構文 UInt16.CompareTo()メソッドの構文は以下の2種類があります。 public int CompareTo (object val); public int CompareTo (ushort val); 1つ目の構文では、比較対象として任意のオブジェクトを引数に指定します。2つ目の構文では、比較対象として符号なし整数(ushort)を直接指定