pomocí příkazu (C#-Reference)
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 naleznete 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
použití směrnice (C#-Reference)