在C#中,實(shí)現(xiàn)克隆一個(gè)實(shí)體類的方式有多種,其中一個(gè)常見的方式是通過實(shí)現(xiàn)ICloneable接口。以下是一個(gè)示例代碼:
using System;
public class Person : ICloneable
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public object Clone()
{
return new Person(Name, Age);
}
}
class Program
{
static void Main()
{
Person person1 = new Person("Alice", 30);
Person person2 = (Person)person1.Clone();
Console.WriteLine("Person 1: {0}, {1}", person1.Name, person1.Age);
Console.WriteLine("Person 2: {0}, {1}", person2.Name, person2.Age);
// Output:
// Person 1: Alice, 30
// Person 2: Alice, 30
}
}
在上面的代碼中,Person類實(shí)現(xiàn)了ICloneable接口,并在Clone方法中返回了一個(gè)新的Person實(shí)例,從而實(shí)現(xiàn)了克隆。在Main方法中,首先創(chuàng)建了一個(gè)Person實(shí)例person1,然后通過調(diào)用Clone方法克隆了一個(gè)新的Person實(shí)例person2。最后輸出了兩個(gè)實(shí)例的屬性值,可以看到person2的屬性值與person1相同,即實(shí)現(xiàn)了克隆。