static void Main(string[] args) { PermanentEmployee permanentEmployee = new PermanentEmployee(); permanentEmployee.Name = "Sam"; permanentEmployee.Age = 25; permanentEmployee.EmploymentType = "Permanent"; PermanentEmployee permanentEmployeeClone = (PermanentEmployee)permanentEmployee.ShallowClone(); permanentEmployeeClone.Name = "Tom"; permanentEmployeeClone.Age = 30; PermanentEmployee p = (PermanentEmployee)permanentEmployee.DeepClone(); p.Name = "Kim"; p.Age = 35; Console.WriteLine("Permanent Employee Details"); Console.WriteLine("Name: {0}; Age: {1}; Employment Type: {2}", permanentEmployee.Name, permanentEmployee.Age, permanentEmployee.EmploymentType); Console.WriteLine("Cloned Permanent Employee Details"); Console.WriteLine("Name: {0}; Age: {1}; Employment Type: {2}", permanentEmployeeClone.Name, permanentEmployeeClone.Age, permanentEmployeeClone.EmploymentType); Console.WriteLine("Cloned Permanent Employee Details"); Console.WriteLine("Name: {0}; Age: {1}; Employment Type: {2}", p.Name, p.Age, p.EmploymentType); Console.ReadLine(); }
public object DeepClone() { PermanentEmployee permanentEmployee = new PermanentEmployee(this.Name, this.Age, this.EmploymentType); return(permanentEmployee); }