C#でUInt32インスタンスのHashCode(ハッシュコード)を取得する方法
C#では、GetHashCode()メソッドを使用することで、現在のUInt32インスタンスのハッシュコードを取得できます。このメソッドはSystem名前空間に属しており、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理するために利用される重要な機能です。
例1
以下のコードは、UInt32インスタンスからハッシュコードを取得する基本的な例です。
using System;
public class Demo {
public static void Main() {
uint val1 = 100;
uint val2 = UInt16.MinValue;
Console.WriteLine("val1のHashCode = "+val1.GetHashCode());
Console.WriteLine("val2のHashCode = "+val2.GetHashCode());
}
}出力結果
上記のコードを実行すると、次のような出力が得られます。
val1のHashCode = 100 val2のHashCode = 0
コードの解説
この例では、変数val1に「100」、変数val2にはUInt16.MinValue(つまり0)を代入しています。各変数に対してGetHashCode()メソッドを呼び出すと、それぞれの値に対応するハッシュコードが返されます。UInt32型の場合、ハッシュコードは元の数値と同一の値になるという特徴があります。
例2
続いて、別の値を使った例を見てみましょう。
using System;
public class Demo {
public static void Main() {
uint val1 = 50;
uint val2 = UInt16.MaxValue;
Console.WriteLine("val1のHashCode = "+val1.GetHashCode());
Console.WriteLine("val2のHashCode = "+val2.GetHashCode());
}
}出力結果
このコードを実行すると、以下の出力が得られます。
val1のHashCode = 50 val2のHashCode = 65535
まとめ
UInt32型のGetHashCode()メソッドは、インスタンスが保持している数値そのものをハッシュコードとして返します。そのため、同じ値を持つインスタンスからは必ず同じハッシュコードが得られます。これは、DictionaryやHashSetといったハッシュベースのコレクションで数値をキーとして扱う際に、一貫性のある動作を保証するための重要な特性です。
-
C#で現在のインスタンスの型を取得する方法(GetTypeメソッド)
C#でオブジェクトの現在のインスタンスの型(実行時の型)を取得するには、GetType()メソッドを使用します。このメソッドはすべての型の基底クラスであるSystem.Objectに定義されており、呼び出し元インスタンスの正確な型をSystem.Typeオブジェクトとして返します。 GetType()メソッドの基本 GetType()はインスタンスに対して呼び出すことで、その実行時の型情報を取得できます。戻り値であるTypeオブジェクトをそのまま文字列連結して出力すると、「System.String」や「System.Int32」のような完全修飾型名が表示されます。 例1:string型のイン
-
C#でInt64インスタンスのハッシュコードを取得する方法
C#の Int64.GetHashCode() メソッドを使うと、現在のInt64(long型)インスタンスに対応するハッシュコードを取得できます。このメソッドは、ハッシュテーブルなどのデータ構造で値を効率的に管理する際に利用されます。GetHashCode()メソッドの基本GetHashCode()は、オブジェクトの値をもとに計算された32ビット整数のハッシュコードを返します。同じ値を持つInt64インスタンスは必ず同じハッシュコードを返しますが、異なる値が同じハッシュコードになる場合もあります(ハッシュの衝突)。サンプルコード1以下の例では、2つのlong型の値に対してハッシュコードを取得