How to: Escrever um construtor de Copiar (guia de programação de C#)
Ao contrário de alguns idiomas, C# não fornece um construtor de cópia. Se você cria um novo objeto e deseja copiar os valores de um objeto existente, você precisará escrever o método apropriado sozinho.
Exemplo
Neste exemplo, o Person classe contém um construtor que toma como seu argumento outro objeto do tipo Person. O conteúdo dos campos neste objeto é então atribuído aos campos no novo objeto. Um construtor de cópia alternativa envia o name e age campos do objeto a ser copiado para o construtor de instância da classe a.
class Person
{
private string name;
private int age;
// Copy constructor.
public Person(Person previousPerson)
{
name = previousPerson.name;
age = previousPerson.age;
}
//// Alternate copy contructor calls the instance constructor.
//public Person(Person previousPerson)
// : this(previousPerson.name, 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 person1.
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
Referência
Classes e estruturas (guia de programação de C#)
Constructors (C# Programming Guide)
Destructors (C# Programming Guide)