Skip to Main Content
C# Cookbook, 2nd Edition
book

C# Cookbook, 2nd Edition

by Jay Hilyard, Stephen Teilhet
January 2006
Intermediate to advanced content levelIntermediate to advanced
1184 pages
43h 23m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook, 2nd Edition
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
184
|
Chapter 3: Classes and Structures
BF.Serialize(memStream, this);
memStream.Position = 0;
return (BF.Deserialize(memStream));
}
}
Add an overloaded Clone method to your class to allow for deep or shallow copying.
This method allows you to decide at runtime how your object will be copied. The
code might appear as follows:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
[Serializable]
public class MultiClone : ICloneable
{
public int data = 1;
public List<string> listData = new List<string>( );
public object objData = new object( );
public object Clone(bool doDeepCopy)
{
if (doDeepCopy)
{
BinaryFormatter BF = new BinaryFormatter( );
MemoryStream memStream = new MemoryStream( );
BF.Serialize(memStream, this);
memStream.Position = 0;
return (BF.Deserialize(memStream));
}
else
{
return (this.MemberwiseClone( ));
}
}
public object Clone( )
{
return (Clone(false));
}
}
Discussion
Cloning is the ability to make an exact copy (a clone) of an instance of a type. Clon-
ing may take one of two forms: a shallow copy or a deep copy. Shallow copying is
relatively easy. It involves copying the object that the
Clone method was called on.
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook

C# Cookbook

Stephen Teilhet, Jay Hilyard
Head First C#, 4th Edition

Head First C#, 4th Edition

Andrew Stellman, Jennifer Greene

Publisher Resources

ISBN: 0596100639Supplemental ContentCatalog PageErrata