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のバージョンや実行環境によって異なる値が返される可能性があります。そのため、ハッシュコードをデータベースなどに永続化したり、一意な識別子として保存・利用したりすることは避けてください。ハッシュコードは、同一プロセス内での等価性チェックやハッシュテーブルでの高速検索など、限定的な用途に使用することが推奨されています。
-
C#のType.GetHashCode()メソッドの使い方とサンプルコード解説
C#のType.GetHashCode()メソッドは、現在のTypeインスタンスに対応するハッシュコードを返します。ハッシュコードは、DictionaryやHashSetといったハッシュベースのコレクションでオブジェクトを効率的に管理・検索するために利用される整数値です。構文Type.GetHashCode()メソッドの構文は以下の通りです。public override int GetHashCode ();引数は不要で、戻り値として現在のインスタンスのハッシュコードを表すint型の値が返されます。サンプル1:配列の型からハッシュコードを取得するまず、文字列配列のTypeオブジェクトに対して
-
C#のDateTime.AddYears()メソッドとは?使い方をわかりやすく解説
C#のDateTime.AddYears()メソッドは、このインスタンスが表す日時に指定した年数を加算し、その結果を新しいDateTimeとして返します。DateTimeは不変(イミュータブル)な構造体であるため、元のインスタンスの値が変更されることはありません。構文public DateTime AddYears (int yrs);パラメータ yrs には、加算する年数を整数で指定します。年数を減算したい場合は、負の値を渡してください。押さえておきたいポイント戻り値は計算結果を表す新しいDateTimeインスタンスで、元の日時には影響しません。うるう日の2月29日に対して加算・減算を行い、