我想在我的程序中创建一个用户控件的深层克隆。怎么做 感谢
答案 0 :(得分:1)
如果您使用MemberwiseClone()
,您将得到一份浅色副本,这可能不是您想要的,因为它不是真正的“副本”。如果您不介意对子对象的两个UserControls
共享引用,那么MemberwiseClone()
应该可以解决问题。否则,您必须编写自己的实现来支持您的要求。
答案 1 :(得分:1)
安德鲁是对的。如果要进行深度克隆,则需要向usercontrol添加一个返回深度克隆的方法。
这很烦人,因为您需要在usercontrol中的每个引用类型上调用此Deep Clone方法,等等。
IClonable界面应该可以促进这种模式,但它完全被搞砸了,而且很大程度上没用。