ICloneable Interface
TOC
Collapse the table of content
Expand the table of content

ICloneable Interface

 

Supports cloning, which creates a new instance of a class with the same value as an existing instance.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public interface class ICloneable

NameDescription
System_CAPS_pubmethodClone()

Creates a new object that is a copy of the current instance.

The ICloneable interface enables you to provide a customized implementation that creates a copy of an existing object. The ICloneable interface contains one member, the Clone method, which is intended to provide cloning support beyond that supplied by Object::MemberwiseClone. For more information about cloning, deep versus shallow copies, and examples, see the Object::MemberwiseClone method.

Notes to Implementers:

The ICloneable interface simply requires that your implementation of the Clone method return a copy of the current object instance. It does not specify whether the cloning operation performs a deep copy, a shallow copy, or something in between. Nor does it require all property values of the original instance to be copied to the new instance. For example, the NumberFormatInfo::Clone method performs a shallow copy of all properties except the NumberFormatInfo::IsReadOnly property; it always sets this property value to false in the cloned object. Because callers of Clone cannot depend on the method performing a predictable cloning operation, we recommend that ICloneable not be implemented in public APIs.

.NET Framework
Available since 1.1
Return to top
Show:
© 2016 Microsoft