プログラムやライブラリ中にはクラス名やメンバー名、それらのアクセスレベル等の情報が格納されています。プログラムの実行時にメタデータを取り出すための機能をリフレクション(reflection)と呼びます。(プログラムが自分自身の情報を調べることができる機能なので、reflection(鏡映、反射)と呼ぶわけです。リフレクション機能を利用して型情報からメタデータを取り出したりする機能が用意されています。information)といいます。ポイント構造体/クラス名やメンバー名などの情報は、プログラムを実行するだけなら不要な情報です。クラス名の文字列からクラスのインスタンスを動的に生成したりする機能(リフレクション)があります。実行時型情報とは実は、プログラムを実行するだけなら、実行時型情報は不要な情報です。以下のような構造体を考えます。構造体のメンバーにアクセスすることを考えます。構造体は、コンピュータ内部では、表1のようなレイアウトになっています。場合は大体表1のようになります。このレイアウトさえ分かっていればメンバーにアクセスできます。4バイト目を見ればいいことになります。言語風の)コードと同じような扱いになっています。いうような情報は削除されてしまいます。実行時にこういった情報を引き出せるようになっています。クラスというものを使って実行時型情報の取得できます。例として、以下のようなコードを考えてみます。(あんまり意味のあるコードではないですけども、例ということで。area);これを、リフレクション(実行時型情報の取得)機能を使って同じことをしようと思うと以下のようになります。文字列になっています。実行時に、文字列からインスタンスを動的に生成しています。Type型のインスタンスを取得することが出来ます。名前空間内に定義されています。以下のようになります。実行速度は圧倒的に遅くなります。リフレクション版は通常版の数千倍くらい低速です。ファイルから動的に(実行時に)インスタンスを生成する簡単なプログラムを作りました。以下に、利用例をあげます。まで気兼ねなくご連絡ください。ついて運営者について。