我想实现ICloneable.Clone()函数。 我的类有一些原始成员,但也有一组引用的对象。 在这个引用的对象类中,我也不想实现这个函数,所以我想知道是否很容易从外面做像MemberWise Clone那样。
Public Function Clone() As Object Implements ICloneable.Clone
Return Me.MemberwiseClone
End Function
我发现它像Array.Clone,但这仅适用于原始类型?
答案 0 :(得分:1)
你几乎就在那里。
Public Function Clone() As Object Implements ICloneable.Clone
Dim copy = Me.MemberwiseClone
copy.SomeArray = copy.SomeArray.Select(Function(r) r.Clone).ToArray()
Return copy
End Function
请注意,由于MemberwiseClone受到保护,因此如果这些对象不是与实现此函数的对象相同的继承层次结构,则无法对数组中的对象调用MemberwiseClone。