QA@IT

System.Typeから配列のインスタンスを作成するには?

4786 PV

こんにちは。
System.Typeが分かっていればSystem.Activator.CreateInstanceでobjectが作成できますが、
int[] nValue = new int[5];
のように要素数が決まっている配列のインスタンスをSystem.Typeから作成するにはどうすればよろしいのでしょうか?

回答

こうでしょうか?

Type t = typeof(int[]);
var o = (int[])Activator.CreateInstance(t, 5);
Console.WriteLine(o.Length); // 5

c# の配列の要素数は(c や c++ と異なり)型の一部ではないので Type そのものに要素数を持たせることはできないと思います。

編集 履歴 (1)
  • 早々のレスありがとうございます。
    まさに教えていただいた通りでした。
    CreateInstanceのパラメータとご指摘していただいた通りいろいろ勘違いしていました。
    とても助かりました。
    ありがとうございます。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。