Compartilhar via


Usando os objetos que encapsulam recursos

Quando você escreve o código que usa um objeto que encapsula um recurso, você deve verificar se o objeto Dispose método é chamado quando você terminar de usar o objeto. Você pode fazer isso com C# usando instrução ou implementando um bloco try/finally em outras linguagens que visam common language runtime.

Instrução Using C#

O C# linguagem de programação usando instrução faz uma chamada para o Dispose método mais automático, simplificando o código que você deve escrever para criar e limpar um objeto. O usando instrução obtém um ou mais recursos, executa as instruções que você especificar e, em seguida, descarta o objeto. Observe que o usando instrução é útil somente para objetos com um tempo de vida não ultrapassam o método no qual os objetos são construídos. O exemplo de código a seguir cria e limpa uma instância da ResourceWrapper de classe, conforme ilustrado no exemplo C# de Implementando um método Dispose.

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

Anterior de código, incorporando a usando de instrução, é equivalente à seguinte.

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();
      }
   }
}

C# usando instrução lhe permite adquirir vários recursos em uma única instrução equivale internamente para aninhadas usando instruções. Para mais informações e um exemplo de código, consulte usando instrução (referência de TRANSLATION FROM VPE FOR CSHARP).

Bloco Try/Finally

Quando você escreve código gerenciado que usa um objeto que encapsula um recurso em linguagens diferentes, por exemplo, C#, use um bloco try/finally para garantir que uma chamada é feita para o objeto Dispose método. O exemplo de código a seguir cria e limpa uma instância da recurso de classe, conforme ilustrado no exemplo de Visual Basic de Implementando um 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

Consulte também

Referência

usando instrução (referência de TRANSLATION FROM VPE FOR CSHARP)

Outros recursos

Limpeza de recursos não gerenciados