Partager via


Utilisation d'objets encapsulant des ressources

Mise à jour : novembre 2007

Lorsque vous écrivez du code utilisant un objet qui encapsule une ressource, vous devez vous assurer que la méthode Dispose de l'objet est appelée lorsque vous avez terminé d'utiliser l'objet. Vous pouvez effectuer cette opération à l'aide de l'instruction using du langage C# ou en implémentant un bloc try/finally dans d'autres langages qui ciblent le Common Language Runtime.

Instruction Using du langage C#

L'instruction using du langage de programmation C# automatise davantage l'appel à la méthode Dispose en simplifiant le code que vous devez écrire pour créer et nettoyer un objet. L'instruction using obtient une ou plusieurs ressources, exécute les instructions que vous spécifiez, puis supprime l'objet. Notez que l'instruction using ne s'avère utile que pour les objets dont la durée de vie ne dépasse pas celle de la méthode dans laquelle les objets sont construits. L'exemple de code suivant crée et nettoie une instance de la classe ResourceWrapper, comme illustré dans l'exemple C# de la rubrique Implémentation d'une méthode Dispose.

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

Le code précédent, qui incorpore l'instruction using, équivaut au code suivant.

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

L'instruction using du langage C# vous permet d'acquérir plusieurs ressources dans une seule instruction qui équivaut en interne à plusieurs instructions using imbriquées. Pour plus d'informations et un exemple de code, consultez using, instruction (Référence C#).

Bloc try/finally

Lorsque vous écrivez du code managé qui utilise un objet encapsulant une ressource dans d'autres langages que C#, utilisez un bloc try/finally pour garantir qu'un appel à la méthode Dispose de l'objet est effectué. L'exemple de code suivant crée et nettoie une instance de la classe Resource, comme illustré dans l'exemple Visual Basic de la rubrique Implémentation d'une méthode 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

Voir aussi

Référence

using, instruction (Référence C#)

Autres ressources

Nettoyage de ressources non managées