我有类似下面的自定义类;使用时更新所有值的类的多个实例=
Public MyClass
Public Property MyText() As String
End Class
然后在我的代码页中,我有以下VB.NET代码;
Dim obj1 As New MyClass
Dim obj2 As New MyClass
obj1 = obj2
obj1.MyText = "Test"
我的问题是,当执行下面的一段代码时,obj2.MyText也会更新。我怎样才能避免这种情况?
obj1.MyText = "Test"
谢谢。
有没有解决办法?而不必手动设置所有属性? – Blahhh 2012-08-14 13:31:57
@AlanAgius:你可以使用Object.MemberwiseClone获得一个浅层克隆,但是你需要确定是否有一些属性需要更深入的克隆等。 – 2012-08-14 13:32:58
@AlanAgius:如果你的对象是可序列化的,你可以序列化对象,然后将其反序列化为一个新对象。在大部分情况下,这在功能上等同于创建深度克隆。但是,这种技术比手工编码的深度克隆效率低。 – Brian 2012-08-14 17:21:51