Exemple #1
0
        private static void ICloneableVersionCopy()
        {
            // Let us see how we can perform the deep copy now
            NovelHeroFinal player = new NovelHeroFinal();

            player.Health           = 1;
            player.Courage          = 10;
            player.Money            = 2.0;
            player.Details.Fitness  = 5;
            player.Details.Charisma = 5;

            // lets clone the object but this time perform a deep copy
            NovelHeroFinal clonedPlayer = player.Clone() as NovelHeroFinal;

            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()
        {
            NovelHeroFinal cloned = this.MemberwiseClone() as NovelHeroFinal;

            cloned.Details          = new AdditionalDetails();
            cloned.Details.Charisma = this.Details.Charisma;
            cloned.Details.Fitness  = this.Details.Fitness;

            return(cloned);
        }