Freigeben über


Gewusst wie: Schreiben eines Kopierkonstruktors (C#-Programmierhandbuch)

Aktualisiert: November 2007

Anders als manche andere Sprachen stellt C# keinen Kopierkonstruktor bereit. Wenn Sie ein neues Objekt erstellen und die Werte aus einem bestehenden Objekt kopieren möchten, müssen Sie die entsprechende Methode selbst schreiben.

Beispiel

In diesem Beispiel enthält die Person-Klasse einen Konstruktor, der ein anderes Objekt vom Typ Person als Argument annimmt. Die Inhalte der Felder in diesem Objekt werden dann den Feldern im neuen Objekt zugewiesen.

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

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

Klassen und Strukturen (C#-Programmierhandbuch)

Konstruktoren (C#-Programmierhandbuch)

Destruktoren (C#-Programmierhandbuch)

ICloneable