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

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

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

構文

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

public override int GetHashCode();

使用例1:基本的なDecimal値の場合

まずは、具体的なDecimal値に対してGetHashCode()メソッドを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        Decimal val = 135269.38193M;
        Console.WriteLine("Decimal Value = {0}", val);
        Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
    }
}

出力結果

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

Decimal Value = 135269.38193
HashCode = 1328665595

使用例2:Decimal.MaxValueの場合

次に、Decimal型が表現できる最大値であるDecimal.MaxValueに対してGetHashCode()メソッドを使用する例です。

using System;
public class Demo {
    public static void Main(){
        Decimal val = Decimal.MaxValue;
        Console.WriteLine("Decimal Value = {0}", val);
        Console.WriteLine("HashCode = {0}", (val.GetHashCode()) );
    }
}

出力結果

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

Decimal Value = 79228162514264337593543950335
HashCode = 1173356544

ポイントまとめ

  • GetHashCode()はObjectクラスから継承されたメソッドをDecimal型がオーバーライドしたものです。
  • 戻り値はint型(32ビット整数)のハッシュコードです。
  • 同じ値を持つDecimalインスタンスからは、必ず同じハッシュコードが返されます。
  • ハッシュコードはDictionary<TKey, TValue>や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