Pomocí příkazu (Visual Basic)
Deklaruje začátku Using blokovat a volitelně získá systémové prostředky, které řídí bloku.
Using { resourcelist | resourceexpression }
[ statements ]
End Using
Části
Termín |
Definice |
resourcelist |
Požadováno, pokud nezadáte resourceexpression.Seznam jedné nebo více systémových prostředků, že Using blokování ovládacích prvků, které jsou odděleny čárkami. |
resourceexpression |
Požadováno, pokud nezadáte resourcelist.Odkaz na proměnnou nebo výraz odkazující na zdroj systému řídí tato Using bloku. |
statements |
Nepovinné.Blok příkazů, Using blokovat spuštění. |
End Using |
Povinné.Ukončí definici Using bloku a disposes všechny prostředky, které ovládá. |
Každý zdroj v resourcelist část má následující syntaxe a částí:
resourcename As New resourcetype [ ( [ arglist ] ) ]
-nebo-
resourcename As resourcetype = resourceexpression
resourcelist částí
Termín |
Definice |
resourcename |
Povinné.Referenční proměnná odkazující na systémové prostředky, Using blokování ovládacích prvků. |
New |
Požadováno pokud Using prohlášení získá zdroje.Pokud jste již získali prostředku, použijte druhý alternativní syntaxi. |
resourcetype |
Povinné.Třídy prostředků.Třída musí implementovat IDisposable rozhraní. |
arglist |
Nepovinné.Seznam argumentů, které jsou předány konstruktoru pro vytvoření instance resourcetype.Viz téma Seznam parametrů (Visual Basic). |
resourceexpression |
Povinné.Proměnná nebo výraz odkazující na systémové zdroje splňující požadavky resourcetype.Pokud druhý alternativní syntaxi musíte získat prostředek před předáním řízení na Using prohlášení. |
Poznámky
Kód někdy vyžaduje nespravovaný prostředek, například popisovač souboru, Obálka COM nebo připojení SQL.A Using blok záruky k dispozici takové prostředky po dokončení kódu s nimi.Je zpřístupní další kód použít.
Spravované prostředky jsou odstraněny z rozhraní.NET Framework uvolňování (GC) bez extra kódování z vaší strany.Není nutné Using blok pro spravované zdroje.Však můžete stále použít Using blok vynutit vyřazení namísto čekání na uvolňování spravovaného prostředku.
A Using blok má tři části: pořízení, využití a odstraňování.
Pořízení znamená vytvořením proměnné a inicializací odkázat na systémové prostředky.Using Prohlášení může získat jeden nebo více zdrojů nebo můžete získat přesně jeden prostředek před zadáním bloku a na dodávky Using prohlášení.Zadáte-li resourceexpression, musíte získat prostředek před předáním řízení Using prohlášení.
Využití přístupu k prostředkům a provádění činností s nimi.Příkazy mezi Using a End Using představují využití zdrojů.
Vyřazení prostředky volání Dispose metoda objektu v resourcename.To umožňuje objekt čistě ukončit jeho prostředky.End Using Příkaz odstraňuje zdrojů podle Using ovládací prvek bloku.
Chování
A Using bloku se chová jako Try...Finally konstrukci, ve které Try bloku používá prostředky a Finally blok je odstraňuje.Z tohoto důvodu Using blok zaručuje uvolnění prostředků, bez ohledu na to, jak byl ukončen blok.To platí i v případě neošetřené výjimky, s výjimkou StackOverflowException.
Působnosti Každá proměnná prostředků získaných Using prohlášení je omezena Using bloku.
Pokud zadáte více systémových prostředků v Using prohlášení efekt je stejný jako v případě, že můžete vnořovat Using blokuje jeden do druhého.
Pokud resourcename je Nothing, bez volání Dispose je vyvolána žádná výjimka.
Strukturované zpracování výjimek v rámci bloku pomocí
Pokud potřebujete zpracovat výjimku, která může dojít v rámci Using blok, můžete přidat úplný Try...Finally konstrukci ji.Potřebujete-li zpracování případu, kde Using příkaz není úspěšný v získání zdroje, můžete otestovat, zda resourcename je Nothing.
Místo použití bloku zpracování strukturovaných výjimek
Pokud potřebujete lepší kontrolu nad pořízení prostředků nebo potřebujete další kód v Finally blok, můžete přepsat Using bloku jako Try...Finally konstrukci.Následující příklad ukazuje kostru Try a Using staveb, které jsou rovnocenné, pořízení a vyřazení resource.
Using resource As New resourceType
' Insert code to work with resource.
End Using
' For the acquisition and disposal of resource, the following
' Try construction is equivalent to the Using block.
Dim resource As New resourceType
Try
' Insert code to work with resource.
Finally
If resource IsNot Nothing Then
resource.Dispose()
End If
End Try
[!POZNÁMKA]
Kód uvnitř Using blok neměli přiřadit objektu v resourcename jiné proměnné.Po ukončení Using blok prostředek je uvolněn a jiné proměnné nelze získat přístup k prostředku, na který odkazuje.
Příklad
Následující příklad vytvoří soubor s názvem log.txt a zapíše do souboru dva řádky textu.Příklad také stejný soubor načte a zobrazí řádky textu.
Protože TextWriter a TextReader třídy implementovat IDisposable rozhraní, můžete použít kód Using příkazy, aby správně uzavřen po zápisu a operací čtení souboru.
Private Sub WriteFile()
Using writer As System.IO.TextWriter = System.IO.File.CreateText("log.txt")
writer.WriteLine("This is line one.")
writer.WriteLine("This is line two.")
End Using
End Sub
Private Sub ReadFile()
Using reader As System.IO.TextReader = System.IO.File.OpenText("log.txt")
Dim line As String
line = reader.ReadLine()
Do Until line Is Nothing
Console.WriteLine(line)
line = reader.ReadLine()
Loop
End Using
End Sub
Viz také
Úkoly
Jak: vyřazení systémových prostředků (Visual Basic)