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

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

C#におけるCharEnumerator.GetHashCode()メソッドは、現在のオブジェクトのハッシュコードを返します。ハッシュコードは、オブジェクトを識別するための整数値であり、ハッシュテーブルなどのデータ構造で効率的な検索を行う際に利用されます。

構文

public virtual int GetHashCode ();

このメソッドは引数を受け取らず、現在のオブジェクトを表すint型のハッシュコードを返します。CharEnumeratorクラスでは、Objectクラスから継承されたこのメソッドが仮想メソッドとして定義されています。

それでは、CharEnumerator.GetHashCode()メソッドを実装した具体的な例を見てみましょう。

サンプルコード

using System;
public class Demo {
    public static void Main(){
        string strNum = "john";
        CharEnumerator ch = strNum.GetEnumerator();
        Console.WriteLine("HashCode = "+ch.GetHashCode());
        while (ch.MoveNext())
            Console.Write(ch.Current + " ");
        // オブジェクトを破棄
        ch.Dispose();
        // 上記でDisposeしたため、以下のコードはエラーになります
        // Console.WriteLine(ch.Current);
    }
}

実行結果

上記のプログラムを実行すると、次のような出力が得られます。

HashCode = 30571253
j o h n

コードの解説

このサンプルコードでは、まず文字列「john」に対してGetEnumerator()メソッドを呼び出し、CharEnumeratorオブジェクトを取得しています。その後、GetHashCode()メソッドを使って列挙子オブジェクトのハッシュコードを表示しています。

続くwhileループ内では、MoveNext()メソッドで文字列の各文字に順番にアクセスし、Currentプロパティで現在の文字を取得して出力しています。最後にDispose()メソッドを呼び出してリソースを解放しています。

注意点

Dispose()メソッドを呼び出した後にCurrentプロパティへアクセスしようとすると、ObjectDisposedExceptionがスローされるため注意が必要です。コメントアウトされている部分のコードを有効にすると、この例外が発生することを確認できます。

  1. C#のCharEnumerator.Dispose()メソッドの使い方を徹底解説

    C#におけるCharEnumerator.Dispose()メソッドは、CharEnumeratorクラスの現在のインスタンスが使用しているすべてのリソースを解放するために使用されます。文字列の各文字を列挙し終えた後などに呼び出すことで、不要になったリソースを明示的に破棄できます。構文public void Dispose ();Dispose()メソッドは引数を受け取らず、戻り値もありません。このメソッドを呼び出した後、そのインスタンスにはアクセスできなくなる点に注意してください。実装例それでは、CharEnumerator.Dispose()メソッドを使用した具体的なコード例を見てみましょ

  2. C#のCharEnumerator.Clone()メソッドとは?使い方とサンプルコードを解説

    C#のCharEnumerator.Clone()メソッドは、現在のCharEnumeratorオブジェクトのコピー(複製)を作成するために使用されます。Clone()で取得した複製は元の列挙子とは独立して動作するため、文字列の途中の位置から残りの文字を個別に走査したい場合などに便利です。構文public object Clone();戻り値はobject型であるため、実際に使用する際にはCharEnumerator型へのキャストが必要です。サンプルコードそれでは、CharEnumerator.Clone()メソッドを使った具体的な実装例を見てみましょう。using System; publ