c#實(shí)體類如何實(shí)現(xiàn)克隆

c#
小樊
117
2024-07-22 21:01:06
欄目: 編程語言

在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)了克隆。

0