В 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
edit: Если это полезно, я сделал это после принятия ответа и опубликую его здесь.
public class copyable // inherit from this to make you'r object copyable
{
public heading copy()
{
return (heading)MemberwiseClone();
}
}