2
Answers

NP60 ICloneable

Maha

Maha

16y
2.6k
1

Hi Guys

 

NP60   ICloneable

 

I got this program from the following website. I wish to know whether ICloneable is a built-in interface. Because following program is executing and producing same result without the following code:

 

public interface ICloneable

{

    object Clone();

}

 

http://www.c-sharpcorner.com/UploadFile/rmcochran/chsarp_memory401152006094206AM/chsarp_memory4.aspx

 

Anyone knows please explain the reason.

 

Thank you

 

using System;

/*

public interface ICloneable

{

    object Clone();

}

*/

 

public class Shoe : ICloneable

{

    public string Color;

 

    #region ICloneable Members

 

    public object Clone()

    {

        Shoe newShoe = new Shoe();

        newShoe.Color = Color.Clone() as string;

 

        return newShoe;

    }

 

    #endregion

}

 

public class Dude

{

    public string Name;

    public Shoe RightShoe;

    public Shoe LeftShoe;

 

    public Dude CopyDude()

    {

        Dude newPerson = new Dude();

 

        newPerson.Name = Name;

        newPerson.LeftShoe = LeftShoe.Clone() as Shoe;

        newPerson.RightShoe = RightShoe.Clone() as Shoe;

 

        return newPerson;

    }

    public override string ToString()

    {

        return (Name + " : Dude!, I have a " + RightShoe.Color

+ " shoe on my right foot, and a " + LeftShoe.Color + " on my left foot.");

    }

}

 

public class Program_byMaha

{

    public static void Main()

    {

        Dude Bill = new Dude();

        Bill.Name = "Bill";

        Bill.LeftShoe = new Shoe();

        Bill.RightShoe = new Shoe();

        Bill.LeftShoe.Color = Bill.RightShoe.Color = "Blue";

 

        Dude Ted = Bill.CopyDude();

        Ted.Name = "Ted";

        Ted.LeftShoe.Color = Ted.RightShoe.Color = "Red";

 

        Console.WriteLine(Bill.ToString());

        Console.WriteLine(Ted.ToString());

    }

}

/*

Bill : Dude!, I have a Blue shoe on my right foot, and a Blue on my left foot.

Ted : Dude!, I have a Red shoe on my right foot, and a Red on my left foot.

*/

Answers (2)