public static void Main(string[] args) { Console.WriteLine("Deep Copy Sample\n"); AuthorForDeepCopy o = new AuthorForDeepCopy(); o.Name = "Sukesh Marla"; o.TwitterAccount = "https://twitter.com/SukeshMarla"; o.Website = "http://www.sukesh-marla.com"; o.HomeAddress = new Address() { City = "Mumbai", State = "Maharastra" }; Console.WriteLine("Original Copy"); Console.WriteLine(o.GetDetails()); AuthorForDeepCopy clonedObject = (AuthorForDeepCopy)o.Clone(); Console.WriteLine("\nCloned Copy"); Console.WriteLine(clonedObject.GetDetails()); Console.WriteLine("\nMake Changes to clone copy address"); clonedObject.Name = "Mr.Changer"; clonedObject.TwitterAccount = "https://twitter.com/MrChanger"; clonedObject.Website = "https://MrChanger.com"; clonedObject.HomeAddress.State = "Karnataka"; clonedObject.HomeAddress.City = "Manglore"; Console.WriteLine("\nCloned Copy"); Console.WriteLine(clonedObject.GetDetails()); Console.WriteLine("\nOriginal Copy"); Console.WriteLine(o.GetDetails()); }