martes, 12 de junio de 2012

Escribir un constructor Copy

A diferencia de algunos lenguajes, C# no proporciona un constructor Copy. Si crea un nuevo objeto y desea copiar los valores de un objeto existente, tiene que escribir de nuevo el método adecuado.

En este ejemplo, la clase Person contiene un constructor que toma como argumento otro objeto de tipo Person. El contenido de los campos de este objeto se asigna a continuación a los campos del nuevo 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 person1.
        Person person2 = new Person(person1);
        System.Console.WriteLine(person2.Details);
    }
}
 
Fuente: MSDN 

No hay comentarios:

Publicar un comentario