Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB.NET
Expertise: Intermediate
Jan 19, 2002



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Implementing ICloneable - Deep copies

The simplest way to create a generic deep copy routine, that is a procedure that can create a true, distinct copy of an object and all its dependent object, is to rely on the serialization features of the .NET framework.

Function CloneObject(ByVal obj As Object) As Object
    ' Create a memory stream and a formatter.
    Dim ms As New MemoryStream(1000)
    Dim bf As New BinaryFormatter()
    ' Serialize the object into the stream.
    bf.Serialize(ms, obj)
    ' Position streem pointer back to first byte.
    ms.Seek(0, SeekOrigin.Begin)
    ' Deserialize into another object.
    CloneObject = bf.Deserialize(ms)
    ' Release memory.
End Function
You can use this routine as follows:

Dim ar(100) As Person
' Fill the array.
' ...
' Create a copy of the array AND all the objects it contains.
ar = CType(CloneObject(ar), Person())
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date