Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Objetos temporales en C#

Uno de los patrones que se repite con mayor frecuencia en los lenguajes orientados a objetos y con control estructurado de excepciones, entre los que se cuentan C++, Java o C# entre otros, es el compuesto por la creación de un objeto, su uso y liberación, controlando posibles fallos y asegurando la liberación. Para ello, en C# es habitual escribir código como el mostrado a continuación:

SqlConnection conexion = null;
try
{
     conexion = new SqlConnection();
     conexion.Open("parámetros");
     ...
} 
finally
{
     if(conexion != null)
          conexion.Dispose();
}

Este código puede simplificarse notablemente gracias a la instrucción using de C#, quedando como se muestra a continuación:

using (SqlConnection conexion = new SqlConnection())
{
     conexion.open("parámetros);
     ...
}

La declaración de la variable, creación del objeto y control de un posible fallo tienen lugar antes de que se entre en el bloque delimitado entre llaves, que sería el contexto en el que la variable conexión sería válida. Al salir de dicho bloque se procede automáticamente a la liberación, sin necesidad de invocar explícitamente a Dispose() ni ningún otro método de destrucción de objetos.


Publicado el 4/12/2007

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web