Sdílet prostřednictvím


using – příkaz (Referenční dokumentace jazyka C#)

Poskytuje pohodlný syntaxi, která zajistí správné používání IDisposable objektů.

Příklad

Následující příklad ukazuje použití pomocí příkazu.

using (Font font1 = new Font("Arial", 10.0f)) 
{
    byte charset = font1.GdiCharSet;
}

Poznámky

Filea Font jsou příklady spravovaných typů, které přístup nespravované prostředky (v této popisovače souborů případu a kontexty zařízení).Existuje mnoho druhů nespravované prostředky a knihovny typů třídy, umožňujících jejich.Všechny typy musí implementovat IDisposable rozhraní.

Jako pravidlo při použití IDisposable by měla deklarovat a vytvořit instanci v objektů using prohlášení.using Prohlášení volání Dispose metoda objektu správným způsobem a (při použití viz dříve) také způsobí sám přejít mimo rozsah co nejdříve Dispose se nazývá.V rámci using blok, objekt je určen jen pro čtení a nelze je upravit nebo znovu přiřazen.

using Prohlášení zajišťuje, že Dispose se nazývá i v případě, že při volání metody objektu, dojde k výjimce.Stejného výsledku lze dosáhnout uvedení objekt uvnitř bloku try a následným voláním Dispose v blok; ve skutečnosti je to jak na using prohlášení je přeložen kompilátorem.Příklad kódu dříve rozšíří následující kód v době kompilace (Všimněte si extra složených vytvořit omezený rozsah objektu):

{
  Font font1 = new Font("Arial", 10.0f);
  try
  {
    byte charset = font1.GdiCharSet;
  }
  finally
  {
    if (font1 != null)
      ((IDisposable)font1).Dispose();
  }
}

Více instancí typu mohou být deklarovány v using prohlášení, jak ukazuje následující příklad.

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

Můžete vytvořit instanci objektu zdroje a předejte proměnnou using prohlášení, ale to není nejvhodnější.V tomto případě objekt zůstane v oboru po ponechá řízení using blokovat, přestože již pravděpodobně bude mít přístup k jeho nespravované prostředky.Jinými slovy že bude již inicializován plně.Pokud se pokusíte použít objekt mimo using blokovat rizika způsobující být vyvolána výjimka.Z tohoto důvodu je obecně lepší vytvořit instanci objektu v using prohlášení a omezit oblast jeho působnosti using bloku.

            Font font2 = new Font("Arial", 10.0f);
            using (font2) // not recommended
            {
                // use font2
            }
            // font2 is still in scope 
            // but the method call throws an exception 
            float f = font2.GetHeight(); 

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Klíčová slova jazyka C#

using – direktiva (Referenční dokumentace jazyka C#)

Koncepty

Průvodce programováním v C#

Implementace metody Dispose

Další zdroje

Referenční dokumentace jazyka C#

Uvolňování paměti