例えば
Type t = typeof(T);
t.GetProperty("Company")
T
はオブジェクトではないためType
、単なる型パラメータです。
コンパイル時に、typeパラメーターは実際のtypeに置き換えられます。たとえば、そのstring
タイプに対して生成されたコードの場合、typeof(T)
実際にはになりますtypeof(string)
。これはオブジェクトでstring
はなく、Type
単なるデータ型です。そのデータ型のオブジェクトtypeof
を取得するには、が必要です。Type
型と型を記述するオブジェクトには違いがあるからです。
T
タイプです。型に適用され、問題の型を説明typeof
する型のオブジェクトを返します。Type
違いを説明する別の試み:
string
、、などのコンパイル時の種類がありint
ますMyClass
。コードを書くときに宣言しました。
ランタイムタイプがあります。それらはタイプのオブジェクトに保持されますType
。これらは、実行時にメモリに存在する通常のオブジェクトインスタンスです。typeof()によってそのようなオブジェクトを取得しますMyType
。これらの型オブジェクトは、実行時に型を調べるために使用できます。