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

C#のDateTime.GetHashCode()メソッドの使い方を解説

概要

C#のDateTime.GetHashCode()メソッドは、現在のDateTimeインスタンスに対応するハッシュコードを返すメソッドです。戻り値は32ビット符号付き整数(int)のハッシュコードとなります。

このメソッドは、オブジェクトをハッシュテーブルやディクショナリなどのデータ構造で効率的に管理するために使用されます。

構文

GetHashCode()メソッドの構文は以下の通りです。

public override int GetHashCode();

パラメータと戻り値

  • パラメータ:なし
  • 戻り値:現在のインスタンスのハッシュコードを表す32ビット符号付き整数(int)

使用例1:固定の日時からハッシュコードを取得する

まず、指定した日時に対してGetHashCode()メソッドを実装した例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTime d = new DateTime(2019, 11, 10, 7, 20, 45);
      int res = d.GetHashCode();
      Console.WriteLine("HashCode for date {0} = {1}", d, res);
   }
}

出力結果

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

HashCode for date 11/10/2019 7:20:45 AM = -2002476754

使用例2:現在の日時からハッシュコードを取得する

次に、DateTime.Nowを使って現在の日時のハッシュコードを取得する例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTime d = DateTime.Now;
      int res = d.GetHashCode();
      Console.WriteLine("HashCode for date {0} = {1}", d, res);
   }
}

出力結果

上記のコードを実行すると、以下のような出力が得られます(実行時刻により値は変化します)。

HashCode for date 10/16/2019 7:03:37 AM = -16205546

注意点

ハッシュコードは.NETのバージョンや実行環境によって異なる値が返される可能性があります。そのため、ハッシュコードをデータベースなどに永続化したり、一意な識別子として保存・利用したりすることは避けてください。ハッシュコードは、同一プロセス内での等価性チェックやハッシュテーブルでの高速検索など、限定的な用途に使用することが推奨されています。

  1. C#のType.GetHashCode()メソッドの使い方とサンプルコード解説

    C#のType.GetHashCode()メソッドは、現在のTypeインスタンスに対応するハッシュコードを返します。ハッシュコードは、DictionaryやHashSetといったハッシュベースのコレクションでオブジェクトを効率的に管理・検索するために利用される整数値です。構文Type.GetHashCode()メソッドの構文は以下の通りです。public override int GetHashCode ();引数は不要で、戻り値として現在のインスタンスのハッシュコードを表すint型の値が返されます。サンプル1:配列の型からハッシュコードを取得するまず、文字列配列のTypeオブジェクトに対して

  2. C#のDateTime.AddYears()メソッドとは?使い方をわかりやすく解説

    C#のDateTime.AddYears()メソッドは、このインスタンスが表す日時に指定した年数を加算し、その結果を新しいDateTimeとして返します。DateTimeは不変(イミュータブル)な構造体であるため、元のインスタンスの値が変更されることはありません。構文public DateTime AddYears (int yrs);パラメータ yrs には、加算する年数を整数で指定します。年数を減算したい場合は、負の値を渡してください。押さえておきたいポイント戻り値は計算結果を表す新しいDateTimeインスタンスで、元の日時には影響しません。うるう日の2月29日に対して加算・減算を行い、