dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: VBNET
Expertise: Intermediate
Jan 19, 2002

WEBINAR:

On-Demand

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


Implementing IClonable - Shallow copies

An object that want to support cloning should implement the ICloneable interface. This interface exposes only one method, Clone, which returns a copy of the object. The ICloneable specifics don't specify whether the object that the Clone method returns is a shallow copy or a deep copy. The difference is subtle, but important when the object being cloned has subobjects: a shallow copy creates a clone of the main (root) object, but doesn't create a copy of any dependent object, whereas a deep copy would copy also all dependent objects.

For example, if you are cloning an array of ten Person objects, a shallow copy would create only one new object (the array), whereas a deep copy would create 11 new objects.

The simplest way to generate a shallow copy is to rely on the MemberwiseClone method that all objects inherit from System.Object. So in practice, you can use the same routine for all cloneable classes:


Class Person
    Implements ICloneable

    ' ...

    Function Clone() As Object Implements ICloneable.Clone
        Return Me.MemberwiseClone
    End Function
End Class
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


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

 

 

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