• ベストアンサー

引数を渡す時にフォームの型を渡して先でnew

C#の引数を渡す時にフォームの型を渡して、 sample先でnewしたいのですが、 可能でしょうか? { sample(Form2) ; } private void sample(object Form2) { Form2 _Form2 = new Form2(); }

質問者が選んだベストアンサー

  • ベストアンサー
  • smcss
  • ベストアンサー率63% (7/11)
回答No.2

ジェネリクスとnew制約を使って同様なことが可能なようです。 class Form2 : Form {} class Form3 : Form {} void sample<T>() where T : Form, new() { T form = new T(); form.Show(); } sample<Form2>(); sample<Form3>();

その他の回答 (1)

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

リフレクションを使えば可能です。 void main(){ Type t = typeof(Form2); CreateInsutance(t); } private void CreateInstance(Type t) { object o = t.InvokeMember(null, system.Reflection.BindingFlags.CreateInstance, null, null, null); t.InvokeMember("Show", System.Reflection.BindingFlags.InvokeMethod, null, o, null); }

関連するQ&A

専門家に質問してみよう