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.
Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web