読者です 読者をやめる 読者になる 読者になる

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!

参考