C#におけるtypeofとGetTypeの違いについて


  1. typeof演算子: typeof演算子は、コンパイル時に型情報を取得するために使用されます。具体的には、型の名前または型のリテラルを引数として受け取り、Typeオブジェクトを返します。typeof演算子は静的なメンバであり、実行時には評価されません。

以下はtypeof演算子の使用例です:

Type type = typeof(string);
Console.WriteLine(type.FullName);

このコードでは、string型のTypeオブジェクトを取得し、そのフルネームを表示しています。

  1. GetTypeメソッド: GetTypeメソッドは、実行時にオブジェクトの型情報を取得するために使用されます。具体的には、あるオブジェクトのインスタンスを作成し、そのインスタンスのGetTypeメソッドを呼び出すことで、そのオブジェクトの型を取得できます。GetTypeメソッドはインスタンスメソッドであり、実行時に評価されます。

以下はGetTypeメソッドの使用例です:

string str = "Hello";
Type type = str.GetType();
Console.WriteLine(type.FullName);

このコードでは、"Hello"という文字列オブジェクトの型を取得し、そのフルネームを表示しています。

要約すると、typeof演算子はコンパイル時に型情報を取得するために使用され、GetTypeメソッドは実行時にオブジェクトの型情報を取得するために使用されます。typeof演算子は静的なメンバであり、GetTypeメソッドはインスタンスメソッドです。

このように、C#においてはtypeof演算子とGetTypeメソッドを使い分けることで、適切に型情報を取得することができます。