private static void ICloneableVersionCopy() { // Let us see how we can perform the deep copy now MJFinal player = new MJFinal(); player.Health = 1; player.Felony = 10; player.Money = 2.0; player.Details.Fitness = 5; player.Details.Charisma = 5; // lets clone the object but this time perform a deep copy MJFinal clonedPlayer = player.Clone() as MJFinal; clonedPlayer.Details.Charisma = 10; clonedPlayer.Details.Fitness = 10; // Lets see what happened to the original object Console.WriteLine("\nOriginal Object:"); Console.WriteLine("Charisma: {0}, Fitness: {1}", player.Details.Charisma.ToString(), player.Details.Fitness.ToString()); Console.WriteLine("\nICloneable Deep Cloned Object:"); Console.WriteLine("Charisma: {0}, Fitness: {1}", clonedPlayer.Details.Charisma.ToString(), clonedPlayer.Details.Fitness.ToString()); }
private object DeepCopy() { MJFinal cloned = this.MemberwiseClone() as MJFinal; cloned.Details = new AdditionalDetails(); cloned.Details.Charisma = this.Details.Charisma; cloned.Details.Fitness = this.Details.Fitness; return(cloned); }