Type からインスタンスを生成する
using System; class Foo { public void Say() { Console.WriteLine("Foo!"); } } class Bar { public Bar(int n, string s) { Console.WriteLine("n:{0} s:{1}", n, s); } public void Say() { Console.WriteLine("Bar!"); } } class Program { static void Main() { var foo = (Foo)Activator.CreateInstance(typeof(Foo)); foo.Say(); // Foo! Type barType = typeof(Bar); // typeof() は Type 型を返す var args = new object[] { 123, "bar" }; // Bar のコンストラクタ引数に渡す値 var bar = (Bar)Activator.CreateInstance(barType, args); bar.Say(); // Bar! } }
実行結果です。
Foo! n:123 s:bar Bar!