C#のCharEnumerator.GetType()メソッドの使い方を徹底解説
C#のCharEnumerator.GetType()メソッドは、現在のインスタンスの型(Type)を取得するために使用されるメソッドです。CharEnumeratorは文字列を1文字ずつ列挙するためのクラスであり、GetType()を使うことで、そのオブジェクトが属する正確な型情報をSystem.Typeオブジェクトとして取得できます。
構文
public Type GetType();
このメソッドは引数を受け取らず、現在のインスタンスの実行時型を表すTypeオブジェクトを返します。なお、GetType()はすべての.NETオブジェクトの基底クラスであるObjectクラスから派生したメソッドのため、CharEnumerator以外のオブジェクトに対しても同様に使用できます。
実装例
それでは、CharEnumerator.GetType()メソッドの具体的な使用例を見てみましょう。
using System;
public class Demo {
public static void Main(){
string strNum = "john";
CharEnumerator ch = strNum.GetEnumerator();
Console.WriteLine("HashCode = "+ch.GetHashCode());
Console.WriteLine("Get the Type = "+ch.GetType());
while (ch.MoveNext())
Console.Write(ch.Current + " ");
// オブジェクトを破棄
ch.Dispose();
// 上でオブジェクトを破棄済みのため、以下のコードはエラーになります
// Console.WriteLine(ch.Current);
}
}出力
上記のプログラムを実行すると、次のような結果が出力されます。
HashCode = 1373506 Get the Type = System.CharEnumerator j o h n
コードの解説
このサンプルコードでは、まず文字列「john」に対してGetEnumerator()メソッドを呼び出し、CharEnumeratorオブジェクトを取得しています。その後、GetHashCode()でハッシュコードを、GetType()で型情報をそれぞれコンソールに表示しています。出力結果から、このオブジェクトの型が「System.CharEnumerator」であることが確認できます。
続くwhileループ内では、MoveNext()メソッドで次の文字へ移動しながら、Currentプロパティで現在の文字を順番に出力しています。すべての文字を処理した後、Dispose()メソッドを呼び出してリソースを解放しています。破棄後のオブジェクトにアクセスしようとするとエラーが発生するため、該当行はコメントアウトされています。列挙子の使用が終わったら、必ずDispose()を呼び出してリソースを適切に解放することを心がけましょう。
-
C#のCompareTo()メソッドの使い方を解説
C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数
-
RubyのArray#zipメソッド徹底解説!2つの配列をスマートに結合する方法
2つの配列を要素ごとに比較して、その違いを見つけたいと思ったことはありませんか? あるいは、各インデックスごとに最大の数値を求めたい、キーのリストと値のリストを組み合わせてハッシュを作りたい――そんな場面にも出会うことがあるでしょう。 …これを「面倒な方法」で実装すると、次のようなコードになります。 例:冗長な書き方 a = [1,2,3,4,5] b = [1,2,3,6,8] c = a.map.with_index { |_, idx| [a[idx], b[idx]] } # [[1, 1], [2, 2], [3, 3], [4, 6], [5, 8]] 確かに動作はしますが