Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Implementing IClonable - Shallow copies

Total Hit ( 2532)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


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:

Click here to copy the following block
Class Person
  Implements ICloneable

  ' ...

  Function Clone() As Object Implements ICloneable.Clone
    Return Me.MemberwiseClone
  End Function
End Class


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.