You are on page 1of 4

c 


  
 c 

   


Segundo Tip para programar Orientado a Objetos con C#, espero que a más de uno
le sirva


 

En el ejemplo del tip # 1, hemos creado una clase Cliente, el cual tiene 3
propiedades (Nombre, Edad y Cuenta). Cuando hemos hecho uso de esta clase, ha sido de
la siguiente forma:

1: static void Main(string[] args)


2: {
3: Cliente cliente = new Cliente();
4: cliente.Nombre = "Héctor";
5: cliente.Edad = 23;
6: cliente.Cuenta = 22312;
7: System.Console.WriteLine(cliente);
8: }

Como podemos ver, tenemos que inicializar explícitamente cada una de las
propiedades (cliente.Nombre=´Héctor; «.).

Imagina que tienes que crear una lista de Clientes, e inicializarla desde el inicio, una
posible solución sería esta:

1: public List<Cliente> RellenarLista()


2: {
3: List<Cliente> lista = new List<Cliente>();
4:
5: Cliente cliente1 = new Cliente();
6: cliente1.Nombre = "Héctor";
7: cliente1.Edad = 23;
8: cliente1.Cuenta = 1111;
9: lista.Add(cliente1);
10:
11: Cliente cliente2 = new Cliente();
12: cliente2.Nombre = "Vianey";
13: cliente2.Edad = 23;
14: cliente2.Cuenta = 1111;
15: lista.Add(cliente2);
16:
17: Cliente cliente3 = new Cliente();
18: cliente3.Nombre = "Anahí";
19: cliente3.Edad = 23;
20: cliente3.Cuenta = 1111;
21: lista.Add(cliente3);
22:
23: return lista;
24: }

ohora imagina, si fueran decenas de clientes los que tuvieras que inicializar, esto se
vuelve cada vez más complicado, con la sintaxis que hemos estado utilizando.

  

El tip de este día es, crear constructores para inicializar los valores de las
propiedades una vez creada la clase. ¿Cómo se hace esto?

o través de un constructor. Un constructor es un método que se ejecutará cuando la


clase sea instanciada. Si no está declarado uno por nosotros, el .NET Framework creará
uno por nosotros.

Primero debemos modificar nuestra clase Clientes, creando un constructor. Un


constructor tiene la forma:

1: Class Cliente
2: {
3: public Cliente()
4: {
5: }
6: }

Como puedes ver, es parecido a un método, toma el mismo nombre que la clase, y
no tiene ningún tipo de retorno. Este constructor será llamado cuando se utilice la palabra
new.
Para nuestro ejemplo, debemos modificar nuestro constructor, de tal forma que
podamos inicializar nuestras propiedades (Nombre, Edad y Cuenta), una vez que sea creada
la instancia de la clase. Esto lo logramos de la siguiente manera:

1: class Cliente
2: {
3: public string Nombre { get; set; }
4: public int Edad { get; set; }
5: public int Cuenta { get; set; }
6:
7: public Cliente(string _nombre, int _edad, int _cuenta)
8: {
9: this.Nombre = _nombre;
10: this.Edad = _edad;
11: this.Cuenta = _cuenta;
12: }
13: }

ohora bien, cuando queramos crear una nueva instancia de Cliente, se nos pedirá
que le pasemos los parámetros solicitados por el constructor que hemos creado, si no, este
marcará error:

Lo que el error nos dice, es que el constructor de Cliente, tiene 3 parámetros, y que
está tratando de ser invocado, sin ninguno, por lo que nuestra inicialización quedaría:

1: class ListaClientes
2: {
3: public List<Cliente> RellenarLista()
4: {
5: List<Cliente> lista = new List<Cliente>();
6:
7: Cliente cliente1 = new Cliente("Héctor", 23, 1111);
8: lista.Add(cliente1);
9:
10: Cliente cliente2 = new Cliente("Vianey", 21, 2342);
11: lista.Add(cliente2);
12:
13: Cliente cliente3 = new Cliente("Anahí", 22, 8232);
14: lista.Add(cliente3);
15:
16: return lista;
17: }
18: }

Como vemos, se ha simplificado muchísimo el código, haciéndolo mas fácil de leer,


y de escribir. Cualquier duda o comentario, no duden en escribirlo

Link del ejemplo: Tip2.zip

Salu2

º  
   

You might also like