Demonstrate ICloneable : Clone « Class Interface « C# / C Sharp






Demonstrate ICloneable

Demonstrate ICloneable
 
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/

// Demonstrate ICloneable. 
 
using System;  
 
class X { 
  public int a; 
 
  public X(int x) { a = x; } 
} 
 
class Test : ICloneable { 
  public X o; 
  public int b; 
 
  public Test(int x, int y) { 
    o = new X(x); 
    b = y; 
  } 
 
  public void show(string name) { 
    Console.Write(name + " values are "); 
    Console.WriteLine("o.a: {0}, b: {1}", o.a, b); 
  } 
 
  // Make a deep copy of the invoking object. 
  public object Clone() { 
    Test temp = new Test(o.a, b); 
    return temp; 
  } 
     
} 
  
public class CloneDemo {     
  public static void Main() {     
    Test ob1 = new Test(10, 20); 
 
    ob1.show("ob1"); 
 
    Console.WriteLine("Make ob2 a clone of ob1."); 
    Test ob2 = (Test) ob1.Clone(); 
 
    ob2.show("ob2"); 
 
    Console.WriteLine("Changing ob1.o.a to 99 and ob1.b to 88."); 
    ob1.o.a = 99; 
    ob1.b = 88; 
 
    ob1.show("ob1"); 
    ob2.show("ob2"); 
  } 
}


           
         
  








Related examples in the same category

1.Copy a classCopy a class
2.System.Array and the Collection Classes:ICloneable 1System.Array and the Collection Classes:ICloneable 1
3.System.Array and the Collection Classes:ICloneable 2System.Array and the Collection Classes:ICloneable 2
4.Implements ICloneable
5.Clone an Object