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

C#のSByte.GetHashCode()メソッドとは?使い方をコード例付きで解説

C#におけるSByte.GetHashCode()メソッドは、現在のSByteインスタンスに対応するハッシュコード(int型)を返すためのメソッドです。ハッシュコードは、HashtableやDictionaryなどのハッシュベースのコレクションでオブジェクトを効率的に管理するために利用されます。

構文

SByte.GetHashCode()メソッドの構文は以下のとおりです。

public override int GetHashCode();

引数は不要で、呼び出し元のインスタンスが持つ値から計算されたハッシュコードを整数値として返します。

使用例1:基本的なハッシュコードの取得

まずは基本的な使い方を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 50;
      sbyte s2 = 75;
      Console.WriteLine("Value of S1 = " + s1);
      Console.WriteLine("Value of S2 = " + s2);
      Console.WriteLine("Is s1 and s2 equal? = " + s1.Equals(s2));
      Console.WriteLine("HashCode for s1 = " + s1.GetHashCode());
      Console.WriteLine("HashCode for s2 = " + s2.GetHashCode());
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Value of S1 = 50
Value of S2 = 75
Is s1 and s2 equal? = False
HashCode for s1 = 50
HashCode for s2 = 75

この例では、s1(値:50)とs2(値:75)は等しくないためEquals()はFalseを返します。また、SByteの場合、GetHashCode()はインスタンスが保持する数値そのものをハッシュコードとして返すことが確認できます。

使用例2:object型との比較とハッシュコード

続いて、object型にボックス化されたSByte値との比較を行う例です。

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 55;
      object s2 = (sbyte)55;
      Console.WriteLine("Value of S1 = " + s1);
      Console.WriteLine("Value of S2 = " + s2);
      int res = s1.CompareTo(s2);
      if (res > 0)
         Console.WriteLine("s1 > s2");
      else if (res < 0)
         Console.WriteLine("s1 < s2");
      else
         Console.WriteLine("s1 = s2");
      Console.WriteLine("HashCode for s1 = " + s1.GetHashCode());
      Console.WriteLine("HashCode for s2 = " + ((sbyte)s2).GetHashCode());
   }
}

出力結果

実行すると、以下の出力が得られます。

Value of S1 = 55
Value of S2 = 55
s1 = s2
HashCode for s1 = 55
HashCode for s2 = 55

s1とs2は同じ値(55)を持つため、CompareTo()の結果は0となり「s1 = s2」が出力されます。さらに、両者のGetHashCode()の戻り値も一致していることがわかります。

まとめ

SByte.GetHashCode()メソッドは、SByteインスタンスのハッシュコードを取得するシンプルなメソッドです。SByteでは保持している数値がそのままハッシュコードとして返されるため、挙動が直感的で理解しやすいのが特徴です。ハッシュテーブルやディクショナリなどのデータ構造を扱う際には、Equals()メソッドと併せて正しく理解しておくことが重要です。

  1. C#のUInt64.GetHashCode()メソッドとは?構文と使い方をサンプルコード付きで解説

    C#のUInt64.GetHashCode()メソッドは、現在のUInt64(符号なし64ビット整数)インスタンスに対応するハッシュコードを取得するために使用されます。ハッシュコードは、ハッシュテーブルやディクショナリなどのデータ構造において、オブジェクトを効率的に検索・管理するために利用されるint型の数値です。構文UInt64.GetHashCode()メソッドの構文は以下のとおりです。public override int GetHashCode ();このメソッドは引数を受け取らず、呼び出し元のUInt64インスタンスのハッシュコードをint型の値として返します。使用例1:基本的な使い

  2. 【C#入門】UInt16.GetHashCode()メソッドの使い方を実例付きで解説

    C#のUInt16.GetHashCode()メソッドは、現在のUInt16インスタンスに対応するハッシュコード(HashCode)を取得するために使用されます。ハッシュコードは、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理・検索する際に活用される整数値です。構文UInt16.GetHashCode()メソッドの構文は以下の通りです。public override int GetHashCode ();このメソッドは引数を受け取らず、現在のインスタンスの値を表すint型のハッシュコードを返します。使用例1まず、基本的な実装例を見てみましょう。通常の値とUInt16.MinVal