Using Deyimi (Visual Basic)

Başlangıcını bildiren bir Using engellemek ve isteğe bağlı olarak blok denetleyen sistem kaynaklarını alır.

Using { resourcelist | resourceexpression }
    [ statements ]
End Using

Bölümleri

Terim

Tanım

resourcelist

Gerekli olmayan sağladığınız, resourceexpression.Liste bir veya daha fazla sistem kaynaklarını bu Using engellemek denetimleri, virgülle ayrılmış.

resourceexpression

Gerekli olmayan sağladığınız, resourcelist.Başvuru değişken veya ifade bu tarafından denetlenmesi için bir sistem kaynağına başvuran Using blok.

statements

İsteğe Bağlı.Deyimleri bloğunu, Using çalıştırmalarını engeller.

End Using

Gerekli.Tanımını sonlandırır Using blok ve denetlediği tüm kaynakları disposes.

Her kaynağın resourcelist bölümü aşağıdaki sözdizimi ve bölümleri vardır:

resourcename As New resourcetype [ ( [ arglist ] ) ]

-veya-

resourcename As resourcetype = resourceexpression

resourcelist bölümleri

Terim

Tanım

resourcename

Gerekli.Bir sistem kaynağı başvuran başvuru değişkeni, Using denetimlerini engelleyin.

New

Gerekli if Using deyimi kaynak alır.İkinci sözdizimi alternatif kaynak aldıysanız şunları kullanın.

resourcetype

Gerekli.Kaynak sınıfı.Sınıfını uygulamalıdır IDisposable arabirim.

arglist

İsteğe Bağlı.Bir örneğini oluşturmak için oluşturucu kaçı bağımsız değişkenlerinin listesini resourcetype.Bkz: Parametre Listesi (Visual Basic)

resourceexpression

Gerekli.Değişken veya ifade gereksinimlerini karşılayan bir sistem kaynağına başvuran resourcetype.İkinci sözdizimi alternatif kullanıyorsanız, kaynak denetimi geçirmeden önce almalıdır Using ifadesi.

Notlar

Bazen bir dosya tanıtıcısı, com wrapper veya sql Bağlantısı gibi bir yönetilmeyen kaynak kod gerektirir.A Using blok kodunuz ile tamamlandığında, bir veya daha fazla bu tür kaynaklar elden garanti eder.Bu onları kullanmak başka bir kod için kullanılabilir yapar.

Yönetilen kaynaklar (gc) .NET Framework çöp toplayıcısı tarafından herhangi bir ekstra kodlama yapmanız olmadan elden.İhtiyacınız olmayan bir Using yönetilen kaynaklar için blok.Ancak, yine de kullanabileceğiniz bir Using çöp toplayıcısı için beklemek yerine yönetilen bir kaynağın elden zorlamak için blok.

A Using blok üç bölümü vardır: edinme, kullanım ve elden çıkarma.

  • Alım bir değişken oluşturma ve sistem kaynağı başvurmak için başlatma anlamına gelir.Using Deyim, bir veya daha fazla kaynak almak veya blok girmeden önce tam bir kaynak almak ve ona tedarik Using ifadesi.Sağladığınız, resourceexpression, kaynak denetimi geçirmeden önce almalıdır Using ifadesi.

  • Kullanım kaynaklara erişme ve eylemleri gerçekleştirme anlamına gelir.İfadeleri arasında Using ve End Using kaynaklarının kullanımı temsil eder.

  • Elden çağırmak anlamına Dispose yöntemi nesne üzerinde resourcename.Bu kaynakları temiz bir şekilde sonlandırmak nesne izin verir.End Using Deyimi ortadan kaldırdırır kaynakları Using bloğun denetim.

Davranış

A Using blok davranır gibi bir Try...Finally , inşaat Try bloğu kullandığı kaynakları ve Finally bloğu onları ortadan kaldırdırır.Bu yüzden Using blok blok çıkmak ne olursa olsun bu kaynakların elden garanti eder.Hatta işlenmeyen bir özel durum söz konusu olduğunda, bu doğrudur dışında bir StackOverflowException.

Tarafından alınan her kaynak değişkenin kapsamı Using ifadesi ile sınırlı Using blok.

Birden fazla sistem kaynağı olarak belirtirseniz, Using deyimi, etkili olup aynı iç içe olarak Using biri diğerinin içinde engeller.

resourcename Olan Nothing, hiçbir çağrı Dispose yapıldı, ve hiçbir özel durum oluşturulmaz.

Yapılandırılmış özel durum işleme kullanan bir blok içinde

İçinde oluşan bir özel durum işleme gerek Using blok, tam bir ekleme Try...Finally ona yapım.Servis talebini işlemek gerekiyorsa, burada Using deyim bir kaynak alımıyla başarılı değil, olup olmadığını test edebilirsiniz resourcename olan Nothing.

Yapılandırılmış özel durum işleme kullanan bir blok

Alım kaynaklar üzerinde daha hassas bir denetime ihtiyacınız veya ek kod, gerekiyorsa Finally blok, yeniden yazabilirsiniz Using olarak engelleyen bir Try...Finally yapım.Aşağıdaki örnekte gösterilmiştir bir çatı Try ve Using edinme ve elden eşdeğer constructions 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 

[!NOT]

Kod içinde Using blok nesneye atamak değil resourcename başka bir değişkene.Çıktığınızda Using blok, kaynak atılmış ve diğer değişken için gösterdiği kaynak erişemiyor.

Örnek

Aşağıdaki örnek, iki satırlık bir metin dosyasına yazar ve log.txt adlı bir dosya oluşturur.Örnek de, aynı dosyayı okur ve metin satırlarını görüntüler.

Çünkü TextWriter ve TextReader sınıfları uygulayan IDisposable arabirimi, kod kullanarak Using dosya düzgün kapalı sonra yazma ve okuma işlemlerini emin olmak için ifadeler.

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

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir Sistem Kaynağını Atma (Visual Basic)

Başvuru

IDisposable

Try...Catch...Finally Deyimi (Visual Basic)