共用方式為


HOW TO:撰寫複製建構函式 (C# 程式設計手冊)

更新:2007 年 11 月

與某些語言不同的是,C# 不會提供複製建構函式。如果您建立了新物件,而且想要從現有物件複製值,就必須自行撰寫適當的方法。

範例

在此範例中,Personclass 包含的建構函式會將 Person 型別的其他物件當做引數。這個物件的欄位內容便會指派給新物件的欄位。

class Person
{
    private string name;
    private int age;

    // Copy constructor.
    public Person(Person previousPerson)
    {
        name = previousPerson.name;
        age = previousPerson.age;
    }

    // Instance constructor.
    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // Get accessor.
    public string Details
    {
        get
        {
            return name + " is " + age.ToString();
        }
    }
}

class TestPerson
{
    static void Main()
    {
        // Create a new person object.
        Person person1 = new Person("George", 40);

        // Create another new object, copying person.
        Person person2 = new Person(person1);
        Console.WriteLine(person2.Details);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: George is 40

請參閱

概念

C# 程式設計手冊

參考

類別和結構 (C# 程式設計手冊)

建構函式 (C# 程式設計手冊)

解構函式 (C# 程式設計手冊)

ICloneable