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)
using Where T : new()告诉编译器T有一个publicno-arg构造函数.
第二种形式没有这样的构造函数.
从你所展示的内容来看,没有必要在构造函数中设置标题(该showForm方法如何知道要设置什么?).
因为T也被限制为Form你可以frm.Text =在实例化之后设置Form.
| 归档时间: |
|
| 查看次数: |
1405 次 |
| 最近记录: |