Exporter (0) Imprimer
Développer tout

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

Définit une portée, en dehors de laquelle un ou des objets seront supprimés.


        using (Font font1 = new Font("Arial", 10.0f))
{
}

C#, via le CLR (Common Language Runtime) du .NET Framework, libère automatiquement la mémoire utilisée pour stocker les objets qui ne sont plus nécessaires. La libération de mémoire est non déterministe ; la mémoire est libérée à chaque fois que le CLR décide d'exécuter le garbage collection. Toutefois, il est généralement préférable de libérer aussi rapidement que possible des ressources limitées comme les handles de fichiers et les connexions réseau.

L'instruction using permet au programmeur de spécifier le moment où les objets qui utilisent des ressources doivent les libérer. L'objet fourni à l'instruction using doit implémenter l'interface IDisposable. Cette interface fournit la méthode Dispose qui doit libérer les ressources de l'objet.

Une instruction using peut être quittée dans deux cas : lorsque la fin de l'instruction using est atteinte ou si une exception est levée et que le contrôle quitte le bloc d'instruction avant la fin de l'instruction.

L'objet peut être déclaré dans l'instruction using, comme indiqué ci-dessus, ou avant l'instruction using, comme suit :

Font font2 = new Font("Arial", 10.0f);
using (font2)
{
    // use font2
}

Il est possible d'utiliser plusieurs objets avec une instruction using, mais ils doivent être déclarés à l'intérieur de l'instruction using, comme suit :


        using (Font font3 = new Font("Arial", 10.0f), 
           font4 = new Font("Arial", 10.0f))
{
    // Use font3 and font4.
}

L'exemple suivant montre comment une classe définie par l'utilisateur peut implémenter son propre comportement Dispose. Notez que votre type doit hériter de IDisposable.

using System;

class C : IDisposable
{
    public void UseLimitedResource()
    {
        Console.WriteLine("Using limited resource...");
    }

    void IDisposable.Dispose()
    {
        Console.WriteLine("Disposing limited resource.");
    }
}

class Program
{
    static void Main()
    {
        using (C c = new C())
        {
            c.UseLimitedResource();
        }
        Console.WriteLine("Now outside using statement.");
        Console.ReadLine();
    }
}

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 5.3.3.17 Instructions using

  • 8.13 L'instruction using

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft