2009-02-16 50 views

回答

1

如果你使用MemberwiseClone()你会得到一个浅拷贝,这可能不是你想要的,因为它不会是一个真正的“副本”。如果您不介意共享引用子对象的两个UserControls,那么MemberwiseClone()应该做的伎俩。否则,你将不得不编写自己的实现来支持你的需求。

1

安德鲁是正确的。如果你想做一个深度克隆,你需要在你的用户控件中添加一个返回深度克隆的方法。

这让人讨厌,因为您需要在您的usercontrol内的每个引用类型上调用此深层克隆方法,以此类推。

该IClonable接口应该是这种模式,但它是完全拙劣的,很大程度上是无用的。