Sdílet prostřednictvím


Using – příkaz (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

Postupy: Odstranění systémového prostředku (Visual Basic)

Referenční dokumentace

IDisposable

Try...Catch....Finally – příkaz (Visual Basic)