在C#中,如何创建新对象实例是现有实例的副本,而不是默认实例的副本。c#type a = new type(b);
例如:
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();
}
}
这一切都取决于什么'door'是 - 它是一个引用或值类型?构造函数是做什么来接受另一个“门”? – BrokenGlass
这可能有所帮助:http://stackoverflow.com/questions/78536/cloning-objects-in-c-sharp – goto10