post icon

Como destruir clases en C#

Así como todos los que programamos con orientación a objetos, sabemos que el constructor de una clase sirve para la gestión de la clase en sí, en el momento de ser instanciada, del mismo modo los destructores son los gestionadores de la clase en caso que ésta deje de ser utilizada.

Esto se utiliza frecuentemente para cerrar conexiones de red, archivos abiertos y otros semejantes, de este modo podemos tener una aplicación que sea más eficiente a la hora de rendir cuentas de rendimiento, obtendremos menos uso de la memoria disponible y evitar tener datos “basura“.

Cuando se invoca al destructor de un tipo, este invoca recursivamente a los destructores de su padre, hasta llegar al tipo más elevado de la jerarquía, object. Los Destructores no se heredan, pero si nos olvidamos de agregar un destructor, no es de preocuparse, el compilador lo hará por nosotros.

Un ejemplo de destrucción es el que sigue:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
 
class Padre
{
   ~Padre()
   {
      Console.WriteLine("El Padre ha sido destruido");
    }
}
 
class Hijo:Padre
{
   ~Hijo()
   {
      Console.WriteLine("El Hijo ha sido destruido");
   }
 
   public static void Main()
   {
      // instanciar objeto sin crear una referencia del mismo
      new Hijo();
   }
}

Y obtendremos el siguiente resultado:

El Hijo ha sido destruido
El Padre ha sido destruido

Datos a considerar: Como se ve en el ejemplo, no se crea una referencia de la instancia hecha, por lo tanto no podemos manipular explicitamente esa instancia como un objeto, es decir, no esta a nuestro alcance, pero eso no quiere decir que no lo esté para el recolector de basura (Garbage Collector)

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder