C# 実行時型情報

メタデータ:クラス名,メンバ名,それらのアクセスレベル等の情報.

リフレクション:プログラムの実行時にメタデータを取り出すための機能.

実行時型情報:C#では,クラスのインスタンスから実行時に型情報を取得したり,リフレクションを利用して型情報からメタデータを取得する機能がある.このようにして実行時に得られる型情報のこと.

実行時型情報をサポートしない言語では,実行時に不要なメンバの名前等の情報は削除される.一方,C#のような実行時型情報をサポートする言語では,実行には直接的に不要なこれらの情報も引き出せるようになっている.

class City {
  string name;
  int population;
}

// Type 取得
Type t = Type.GetType("SolutionName.OuterClass1+OuterClass2+Rect");

// 取得した Type のインスタンスを生成
object o = Activator.CreateInstance(t);

o.GetField("name").SetValue(o, "Tokushima");
o.GetField("population").SetValue(o, 10000);

string name = o.GetField("name").GetValue(o);
int population = o.GetField("population").GetValue(o);