我使用此代码从另一个 MDIchild 表单中加载 MDIchild 表单。我仍在学习如何在我的方法中使用泛型,所以当我在这里的人们的帮助下最终让我的方法工作时,我会用两个稍微不同的代码结束你,在我的情况下,它们的工作方式相同。所以我的问题是——这两种变体做同样的工作是巧合,还是两种方法之间没有区别。
所以这里是版本 1:
protected void LoadAForm<T>(ref T sendTo) where T : Form
{
MainForm frm = this.MdiParent as MainForm;
if (frm != null)
{
sendTo = SingletonFormProvider.GetInstance<T>(frm, true);
sendTo.MdiParent = frm;
sendTo.Dock = DockStyle.Fill;
sendTo.Show();
}
}
这是第 2 版:
protected void LoadAForm<T>(ref T sendTo) where T : Form
{
MainForm frm = this.MdiParent as MainForm;
T temp;
if (frm != null)
{
temp= SingletonFormProvider.GetInstance<T>(frm, true);
temp.MdiParent = frm;
temp.Dock = DockStyle.Fill;
temp.Show();
}
}
那么使用实例化是否有(如果有任何区别)T temp
或者它只是同一件事?