【发布时间】:2014-11-04 11:16:21
【问题描述】:
情况是这样的:
Class A
Implements ICloneable
Public Property Children As List(Of Child)
Public Function Clone() As Object Implements ICloneable.Clone
Return New A With {
.Children = Children.Select(Function(c) DirectCast(c.Clone(), Child)).ToList()
}
End Function
End Class
Class Child
Implements ICloneable
Public Property Parent As A
Public Function Clone() As Object Implements ICloneable.Clone
Return New Child With {
.Parent = DirectCast(Parent.Clone(), A)
}
End Function
End Class
实际的对象更复杂,有几个层次。
我不确定如何解决这个问题,因为目前,每当您在父 A 类上调用 Clone 时,您最终都会得到一个循环引用。
如何避免这种情况?我应该创建自己的Clone 函数并传递参数吗?
【问题讨论】:
标签: vb.net design-patterns circular-reference icloneable