public static void Main() { ConcretePrototype cp1 = new ConcretePrototype(25); ConcretePrototype cp2 = (ConcretePrototype)cp1.Clone(); Console.WriteLine("cp1.SomeProperty == cp2.SomeProperty? {0}", (cp1.SomeProperty == cp2.SomeProperty)); Console.WriteLine("cp1 == cp2? {0}", (cp1 == cp2)); Console.WriteLine(); ComplexClass cc1 = new ComplexClass(cp1); ComplexClass cc2 = (ComplexClass)cc1.Clone(); Console.WriteLine("cc1.SomeProperty == cc2.SomeProperty? {0}", (cc1.SomeProperty == cc2.SomeProperty)); Console.WriteLine("cc1 == cp2? {0}", (cc1 == cc2)); Console.ReadKey(); }