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

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

C#におけるInt16.GetHashCode()メソッドは、現在のInt16インスタンス(short型の値)に対応するハッシュコードを返すためのメソッドです。ハッシュコードは、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理する際に利用される整数値です。

構文

このメソッドの構文は以下のとおりです。

public override int GetHashCode ();

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

まずは、Int16.GetHashCode()メソッドを使って2つのshort型変数のハッシュコードを取得する基本的な例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      short val1 = 20;
      short val2 = 25;
      Console.WriteLine("Value1 = "+val1);
      Console.WriteLine("Value2 = "+val2);
      Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
      Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
      Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
   }
}

出力結果

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

Value1 = 20
Value2 = 25
HashCode for value1 = 1310740
HashCode for value2 = 1638425
Are they equal? = False

この例では、値20と25それぞれに異なるハッシュコードが割り当てられていることがわかります。また、Equals()メソッドによる比較の結果もFalseとなり、2つの値が等しくないことが確認できます。

使用例2:境界値でのハッシュコード取得

続いて、0とInt16.MaxValue(short型の最大値)という境界値を使用した例を見てみましょう。

using System;
public class Demo {
   public static void Main(){
      short val1 = 0;
      short val2 = Int16.MaxValue;
      Console.WriteLine("Value1 = "+val1);
      Console.WriteLine("Value2 = "+val2);
      Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
      Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
      Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
   }
}

出力結果

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

Value1 = 0
Value2 = 32767
HashCode for value1 = 0
HashCode for value2 = 2147450879
Are they equal? = False

興味深い点として、値が0の場合、そのハッシュコードも0になります。一方、Int16.MaxValue(32767)の場合は2147450879という大きな値が返されています。これは、GetHashCode()メソッドが内部で値をint型に拡張して計算を行うためです。

まとめ

Int16.GetHashCode()メソッドは、short型の値から一意性の高いハッシュコードを生成するシンプルなメソッドです。DictionaryやHashSetなどのコレクションで数値をキーとして扱う場合や、等価性の比較処理を実装する際に、内部的に活用される重要なメソッドといえます。

  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