21
2010
Destructores en C#
Saludos a todos!
Despues de una semana algo estresante en el trabajo, se vino a mi mente este concepto dentro de la POO
, y son los Destructores o los Destructors, que son bloques de codigo que se utilizan cuando la instancia de una clase es recolectada por el GC (Garbage Collector) de forma automatica cuando excede un tiempo de espera en memoria y es recolectada para optimizar recursos. Esta es una practica poco usada, ya que la administracion del GC es automatica, pero si es necesario, cuando una instancia consume recursos externos como las conexiones a la red, a web services o a otros servicios o recursos que no son administrados directamente por la aplicacion principal.
Dentro de la herecia, los destructores se ejecutan en el orden que su clase esta heredando, es decir, desde la clase mas baja hasta la clase mas alta.
Abajo esta un ejemplo sencillo de herencia y ejecucion de destructores, es un modulo de proyecto de consola de Visual Studio 2008, pueden agregarlo en su VS y ejecutarlo, para que conozcamos un poco sobre este tema de los destructores.
Nos vemos!
using System;
namespace Destructors
{
class Program
{
static void Main(string[] args)
{
Test t = new Test();
MedicalTest mt = new MedicalTest();
Console.Read();
}
}
public class Test
{
public Test()
{
Console.WriteLine("Test 1 created!");
}
~Test()
{
Console.WriteLine("Test 1 is dead!");
}
}
public class MedicalTest : Test
{
public MedicalTest()
{
Console.WriteLine("Medical test is created!");
}
~MedicalTest()
{
Console.WriteLine("Medical test is dead!");
}
}
}
3 Comments + Add Comment
Leave a comment
Misc
Categories
- Arroba de Oro (2)
- C# Development (14)
- Charlas (1)
- Crystal Reports (1)
- Desarrollo (2)
- Desktop Development (3)
- Microsoft (1)
- Microsoft El Salvador (1)
- Microsoft Expresion Studio (2)
- Microsoft Sql Server (3)
- Microsoft Visual Studio (13)
- Noticias (3)
- Principal (12)
- Silverlight (4)
- Web Development (1)
- Windows (1)
- Windows Phone (1)
- Windows Presentation Foundation (1)
- Xml (1)

An article by








Es importante recordar que ese operador (~) también se utiliza para poder hacer un negado de bits sobre enteros y que para los amigos que usan Visual Basic no está disponible esa sintaxis!
o la más lógica, haz un override del método Finalize de Object, es la forma más estándar dentro del Framework para realizar lo que Josué nos propone en este artículo.
Si utilizas Visual Basic puedes hacer dos cosas… cambiate de lenguage
A ver si nos agrega un nuevo artículo con el código explicando el polimorfismo y el método finalize!
Saludos!
– Eule
Gracias por el comment Eule, y si, pronto hablaremos sobre las alternativas como Finalize y Dispose, poco a poco ya que para esto tenemos que ver los recursos administrados y no administrados, y las desventajas y riesgos de Finalize.
Seguimos en contacto
Pelado! pelado!… solo que yo estoy iniciando C#, lo mio es Visual Fox