Usar objetos que encapsulan recursos

Cuando escriba código que utiliza un objeto que encapsula un recurso, asegúrese de que llama al método Dispose del objeto cuando termine de utilizarlo. Para ello, utilice la instrucción using de C# o implemente un bloque try/finally en otros lenguajes orientados a Common Language Runtime.

Instrucción using de C#

La instrucción using del lenguaje de programación C# realiza una llamada al método Dispose de forma más automática, simplificando el código que es necesario escribir para crear y limpiar un objeto. La instrucción using obtiene uno o más recursos, ejecuta las instrucciones especificadas y, después, desecha el objeto. Tenga en cuenta que la instrucción using sólo es útil para objetos cuyo período de vida no supere al método en que se construyen los objetos. En el siguiente ejemplo de código se crea y se limpia una instancia de la clase ResourceWrapper, como se ilustra en el ejemplo de C# de cómo implementar un método Dispose.

class myApp
{
   public static void Main()
   {
      using (ResourceWrapper r1 = new ResourceWrapper())
      {
         // Do something with the object.
         r1.DoSomething();
      }
   }
}

El código anterior, que incorpora la instrucción using, equivale al código siguiente.

class myApp
{
   public static void Main()
   {
      ResourceWrapper r1 = new ResourceWrapper();
      try
      {
         // Do something with the object.
         r1.DoSomething();
      }
      finally
      {
         // Check for a null resource.
         if (r1 != null)
         // Call the object's Dispose method.
         r1.Dispose();
      }
   }
}

La instrucción using de C# permite adquirir varios recursos en una sola instrucción, lo que internamente equivale a instrucciones using anidadas. Para obtener más información y un ejemplo de código, vea using (Instrucción, Referencia de C#).

Bloque Try/Finally

Cuando escriba código administrado que utilice un objeto que encapsula un recurso en lenguajes diferentes de C#, utilice un bloque try/finally para asegurarse de que se realiza una llamada al método Dispose del objeto. En el siguiente ejemplo de código se crea y se limpia una instancia de la clase Resource, como se ilustra en el ejemplo de Visual Basic de cómo implementar un método Dispose.

class myApp
   Public Shared Sub Main()
      Resource r1 = new Resource()
      Try
         ' Do something with the object.
         r1.DoSomething()
      Finally
         ' Check for a null resource.
         If Not (r1 is Nothing) Then
            ' Call the object's Dispose method.
            r1.Dispose()
         End If
      End Try
   End Sub
End Class

Vea también

Referencia

using (Instrucción, Referencia de C#)

Otros recursos

Limpiar recursos no administrados