-1

可能重复:
在 C# 中克隆对象

我的代码:

private void button1_Click(object sender, EventArgs e)
{
    CopyForm(new Form1());
}

public void CopyForm(Form form)
{
    Form frm = form;
    frm.Text = "1";
    form.Text = "2";

    string c = frm.Text;// out 2
    string c2 = form.Text;// out 2
}

如何从 Form 创建对象without Ref

请告诉我最好的方法。

编辑 :

请样品。

4

1 回答 1

2

您可以使用Copy Constructor或使用ICloneable 的 Clone 方法来制作 Form 的副本。

下面给出了 Copy Constructor 的一个简单示例。您需要创建自己的表单类并向其添加 copyConstructor 方法。

class MyClonableForm:Form
{

public MyClonableForm(Form oldForm)//Copy Constructor
{
this.Text=oldForm.Text;
//write your clone code here
//be careful with reference types!
}

}

注意

不推荐使用ICloneable接口,因为它没有指定执行的克隆类型,即深或浅。

如果您确实想使用它,您可以但不要公开克隆方法。将其用于您自己的目的!

于 2012-07-31T06:25:37.067 回答