在C#中,如何创建新对象实例,这些实例是现有实例的副本而不是默认副本。
例如:
door a = new door();
door b = a;
door c = new door(a);
b.open();
a.is_open(); // yes
b.is_open(); // yes
c.is_open(); // no
编辑:如果它有用,我在接受答案后做了这个并将其发布在这里。
public class copyable // inherit from this to make you'r object copyable
{
public heading copy()
{
return (heading)MemberwiseClone();
}
}
答案 0 :(得分:3)
在构造函数中传递参数时,除了复制所有字段之外,没有简单的方法来创建副本。您可以使用door c = a.MemberwiseClone();
创建浅色副本,或者自己动手。
答案 1 :(得分:0)
如果要创建对象的副本,则必须创建一个复制构造函数或将其固有iclonable