[英]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.