Variables estáticas y destructores en C#
Las variables estáticas son atributos de una clase que están disponibles para todas las instancias de dicha clase, y a los cuales puedes acceder directamente (sin instanciar un objeto) de la forma Clase.Variable.
Los destructores son métodos que se ejecutan cuando se elimina un objeto; son especialmente útiles si deseamos hacer algo en particular, antes de eliminar la referencia al objeto. A continuación un sencillo ejercicio, en donde se ejemplifica el uso de las variables estáticas y de los destructores en C Sharp:
using System;
namespace Estatico{
public class Clase {
//un atributo normal
private string variable;
//esta variable esta disponible para todas
//las instancias de esta clase
private static int contador;
//constructor
public Clase(string x) {
variable = x;
//aumentar valor de la variable estatica
++contador;
Console.WriteLine("Constructor de "+variable);
}
~Clase(){
--contador;
Console.WriteLine("Se destruyo una de las instancias ("+variable+")"+contador);
}
public static int Contador{
get{
return contador;
}
}
}
}
Clase que utiliza los valores estáticos de la clase anterior:
using System;
namespace Estatico{
public class Principal{
static void Main(string[] args){
Console.WriteLine("Contador antes de crear objetos: "+Clase.Contador);
//crear 2 instancias de la clase
Clase objeto1 = new Clase("primero");
Clase objeto2 = new Clase("segundo");
Console.WriteLine("Contador despues de crear objetos: "+Clase.Contador);
//eliminar referencias a los objetos
objeto1 = null;
objeto2 = null;
//forzar al recolector de basura a ejecutarse
System.GC.Collect();
//esperar hasta que el recolector de basura termine su trabajo
System.GC.WaitForPendingFinalizers();
//despues de la recolecta de basura...
Console.WriteLine("Despues de la recolecta de basura, contador: "+Clase.Contador);
}
}
}
2 Comentarios | deja el tuyo




