具有参数问题的新通用函数

Thu*_*der 0 .net c# generics new-operator

嗨,我有一个通用的功能,如下所示.它可以用来通过调用来显示表单

showForm(ch);

它适用于第二功能(新的不带参数),但是,如果我想要显示的形式,但在构造函数中的参数作为第三功能(新带参数),那么我不能这样做.任何人有一个想法如何做到了吗?

       void showForm<T>(T frm)  where T :Form, new()
        {
            if (frm == null)
            {
                frm = new T();
            }
            frm.MdiParent = this;
            frm.Show();
        }


        //Works for this
        public frmChild2()
        {
            InitializeComponent();
            ChildToolStrip = toolStrip1;
           // toolStrip1.Visible = false;
        }

        //Does not Work for this
        public frmChild2(string title)
        {
            InitializeComponent();
            ChildToolStrip = toolStrip1;
            Text = title;
            // toolStrip1.Visible = false;
        }
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 5

using Where T : new()告诉编译器T有一个publicno-arg构造函数.

第二种形式没有这样的构造函数.

从你所展示的内容来看,没有必要在构造函数中设置标题(该showForm方法如何知道要设置什么?).

因为T也被限制为Form你可以frm.Text =在实例化之后设置Form.