using System;
class MyValue
{
public MyValue(int count)
{
this.count = count;
}
public int count;
}
class MyObject: ICloneable
{
public MyObject(int count)
{
this.contained = new MyValue(count);
}
public object Clone()
{
Console.WriteLine("Clone");
return(new MyObject(this.contained.count));
}
public MyValue contained;
}
class MainClass
{
public static void Main()
{
MyObject my = new MyObject(33);
MyObject myClone = (MyObject) my.Clone();
Console.WriteLine("Values: {0} {1}", my.contained.count, myClone.contained.count);
myClone.contained.count = 15;
Console.WriteLine("Values: {0} {1}", my.contained.count, myClone.contained.count);
}
}