Partilhar via


Como: gravar um construtor de cópia (guia de programação translation from VPE for Csharp)

Ao contrário de alguns idiomas, translation from VPE for Csharp não fornece um construtor de cópia.Se você cria um novo objeto e para copiar os valores de um objeto existente, você precisará escrever você mesmo o método apropriado.

Exemplo

In this example, the Personclass contains a constructor that takes as the argument another object of type Person.O Sumário dos campos nesse objeto é então atribuído para os campos no novo objeto.

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

Consulte também

Conceitos

Guia de Programação C#

Referência

Classes e estruturas (guia de programação translation from VPE for Csharp)

Construtores (Guia de programação do C#)

Destructors (guia de programação C#)

ICloneable