[英]Generic function new with parameter problem
嗨,我有一个通用功能,如下所示。 可以通过调用来显示表单
showForm(ch);
IT工作于第二个函数(不带参数的新函数),但是如果我想像第三个函数(带参数的新函数)那样在构造函数中显示带有参数的窗体,那我就做不到。任何人都知道如何会吗
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;
}
使用Where T : new()
告诉编译器T
具有public
无参数构造函数。
第二种形式没有这样的构造函数。
从显示的内容来看,并不需要真正在构造函数中设置标题( showForm
方法甚至不知道要设置什么?)。
由于T
也被约束为Form
您可以在实例化Form
之后设置frm.Text =
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.