Procedura: scrivere un costruttore di copia (Guida per programmatori C#)
Aggiornamento: novembre 2007
Diversamente da alcuni linguaggi, in C# non è disponibile un costruttore di copia. Se si crea un nuovo oggetto e si desidera copiare i valori da un oggetto esistente, sarà quindi necessario scrivere il metodo appropriato.
Esempio
In questo esempio la classePerson contiene un costruttore che accetta come argomento un altro oggetto di tipo Person. Il contenuto dei campi di tale oggetto viene quindi assegnato ai campi del nuovo oggetto.
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
Vedere anche
Concetti
Riferimenti
Classi e strutture (Guida per programmatori C#)
Costruttori (Guida per programmatori C#)