Partager via


Comment : écrire un constructeur de copie (Guide de programmation C#)

Mise à jour : novembre 2007

Contrairement à certains langages, C# ne fournit pas de constructeur de copie. Si vous créez un nouvel objet et souhaitez copier les valeurs d'un objet existant, vous devez écrire vous-même la méthode appropriée.

Exemple

Dans cet exemple, la classePerson contient un constructeur qui prend comme argument un autre objet de type Person. Le contenu des champs de cet objet est ensuite assigné aux champs du nouvel objet.

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

Voir aussi

Concepts

Guide de programmation C#

Référence

Classes et structs (Guide de programmation C#)

Constructeurs (Guide de programmation C#)

Destructeurs (Guide de programmation C#)

ICloneable