Mureakuha
using System;
// IClonable rajapinta esittelee Clone-metodin
class K : ICloneable
{
//muuttuja jokuArvo on kokeen tekemistä varten
public int jokuArvo;
public K(int i)
{
jokuArvo = i;
}
public object Clone()
{
//MemberwiseClone kuuluu object luokkaan, koska
//kyseinen metodi on suojattu (protected), niin
//se pitää palauttaa julkisesta metodista kuten Clone
return this.MemberwiseClone;
}
public static void Main()
{
//Alkuperäinen olio
K k1 = new K(7);
//Cloonataan k1 muuttujaan k2
K k2 = (K)k1.Clone();
//Tehdään koe muutos k2, jotta voidaan todeta sen olevan
//eriosoitteessa, kuin k1
k2.jokuArvo = 10;
//Testi tuloste, joka tulostaa k1=7 ja k2=10 eli testi onnistui
Console.WriteLine("k1={0} ja k2={1}", k1.jokuArvo, k2.jokuArvo);
}
}