在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