Aracılığıyla paylaş


Sub Deyimi (Visual Basic)

Adı, parametreler ve tanımlayan kod bildirir bir Sub yordam.

[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] [ Async ]
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
    [ statements ]
    [ Exit Sub ]
    [ statements ]
End Sub

Bölümleri

Terim

Tanım

attributelist

İsteğe Bağlı.Bkz: öznitelik listesi.

Partial

İsteğe Bağlı.Kısmi bir yöntemin tanımını gösterir.Bkz: Kısmi Yöntemler (Visual Basic)

accessmodifier

İsteğe Bağlı.Aşağıdakilerden biri olabilir:

Bkz: Visual Basic'de Erişim Düzeyleri

proceduremodifiers

İsteğe Bağlı.Aşağıdakilerden biri olabilir:

Shared

İsteğe Bağlı.Bkz: Paylaşılan.

Shadows

İsteğe Bağlı.Bkz: gölgeleri.

Async

İsteğe Bağlı.Bkz: zaman uyumsuz.

name

Gerekli.Yordamın adı.Bkz: Bildirilen Öğe Adları (Visual Basic)Bir sınıf için bir yapıcı yordam oluşturmak için adını ayarlamak bir Sub yordam için New anahtar sözcük.Daha fazla bilgi için bkz. Nesne Ömrü: Nesneleri Oluşturma ve Yok Etme (Visual Basic).

typeparamlist

İsteğe Bağlı.Genel yordam için tür parametreleri listesi.Bkz: türü listesinde.

parameterlist

İsteğe Bağlı.Bu yordamın parametreleri temsil eden yerel değişken adları listesi.Bkz: Parametre Listesi (Visual Basic)

Implements

İsteğe Bağlı.Bu yordam, bir veya daha fazla uyguladığını gösterir Sub yordamları, bu yordamın içeren sınıf veya yapı tarafından uygulanan bir arabirimde tanımlanan her biri.Bkz: Implements Deyimi

implementslist

Gerekli if Implements sağlanır.Liste, Sub uygulanan yordamlar.

implementedprocedure [ , implementedprocedure ... ]

Her implementedprocedure aşağıdaki sözdizimi ve bölümleri vardır:

interface.definedname

Parça

Tanımlama

interface

Gerekli.Bu yordam tarafından uygulanan bir arabirimin adını içeren sınıf veya yapı.

definedname

Gerekli.Tarafından yordamı tanımlanmış ad interface.

Handles

İsteğe Bağlı.Bu yordamı, bir veya daha fazla belirli olayları işleyebilirsiniz gösterir.Bkz: Handles Tümcesi (Visual Basic)

eventlist

Gerekli if Handles sağlanır.Bu yordam işleme olayların listesi.

eventspecifier [ , eventspecifier ... ]

Her eventspecifier aşağıdaki sözdizimi ve bölümleri vardır:

eventvariable.event

Parça

Tanımlama

eventvariable

Gerekli.Nesne değişkeni sınıf veya olayını yapısı veri türüyle bildirilir.

event

Gerekli.Bu yordam işleme olay adı.

statements

İsteğe Bağlı.İçinde bu yordamı çalıştırmak için ifadeleri engelleme.

EndSub

Bu yordam tanımını sonlandırır.

Notlar

Tüm diğer yürütülebilir kodlar yordam içinde olmalıdır.Kullanım bir Sub yordamı çağıran kodun bir değer döndürmek istemediğinizde.Kullanım bir Function bir değer döndürmek istiyorsanız, yordamı.

Bir alt yordam tanımlama

Tanımlayabileceğiniz bir Sub yordam yalnızca modül düzeyinde.Alt yordamı bildiriminin içerik, bu nedenle, bir sınıf, bir yapı, bir modül veya arabirim olmalıdır ve bir kaynak dosyası, bir ad alanı, bir yordam veya bir blok olamaz.Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri (Visual Basic).

SubGenel erişim için varsayılan yordamlar.Erişim değiştiricilerini kullanarak kendi erişim düzeylerini ayarlayabilirsiniz.

Yordam kullanılıyorsa, Implements anahtar sözcüğü, içeren sınıf veya yapıda olması gerekir bir Implements hemen sonra gelen deyimi kendi Class veya Structure ifadesi.Implements Deyimi içinde belirtilen her arabirimi içermelidir implementslist.Ancak, arabirim olarak tanımlayan ad Sub (içinde definedname) Bu yordam adıyla eşleşmesi gerekmez (de name).

Bir alt yordam döndürülüyor

Zaman bir Sub yordam çağırma kodu döndürür, sonra onu denilen ifade deyimi ile yürütülmesine devam.

Aşağıdaki örnek, bir dönüş gösterir bir Sub yordam.

Sub mySub(ByVal q As String)
    Return
End Sub 

Exit Sub Ve Return ifadeleri neden hemen bir çıkış bir Sub yordam.Herhangi bir sayıda Exit Sub ve Return deyimleri yordamı içinde herhangi bir yerde görüntülenebilir ve karıştırmak Exit Sub ve Return deyimleri.

Bir alt yordam çağırma

Siz bir Sub bir deyimde yordam adı kullanarak ve sonra bu adla bir parantez kendi bağımsız değişken listesinde aşağıdaki yordamı.Herhangi bir bağımsız değişkeni girmezseniz parantez atlayabilirsiniz.Ancak, kodunuz her zaman ayraçlar dahil ederseniz daha okunabilir.

A Sub yordam ve bir Function yordam parametreleri vardır ve deyimleri dizisi gerçekleştirir.Ancak, bir Function yordam döndürür bir değer ve bir Sub yordam değil.Bu nedenle, kullanamazsınız bir Sub yordam deyim içinde.

Kullanabileceğiniz Call aradığınızda, anahtar sözcüğü bir Sub yordam, ancak o anahtar birçok kullanım için önerilen değil.Daha fazla bilgi için bkz. Call Deyimi (Visual Basic).

Visual Basic iç verimliliğini artırmak için aritmetik ifadeler bazen yeniden düzenler.Bağımsız değişkeni, listenizi diğer yordamları çağıran ifadeler içeriyorsa, bu nedenle, bu ifadeler belirli bir sırada adlı varsaymak gerekir.

Zaman uyumsuz alt yordamlar

Async özelliğini kullanarak, açık çaðrýlarý kullanarak veya el ile birden çok işlevlerini veya lambda ifadeleri kodunuzu bölerek olmadan zaman uyumsuz işlevler çağırabilirsiniz.

Bir yordam ile işaretler, zaman uyumsuz değiştiricisi, kullanabileceğiniz Await yordamında işleci.Ne zaman, en fazla kontrol bir Await ifadesinde Async yordamı, denetimi çağırana döndürür ve awaited görev tamamlanıncaya kadar askıya yordamı sürüyor.Görev tamamlandığında yürütme yordama devam edebilirsiniz.

[!NOT]

Bir Async yordam döndürür arayan tam değil ya da ilk awaited nesnesi ile karşılaştığınız zaman ya da sonuna kadar Async yordam ulaşıldığında, hangisi daha önce oluşur.

Ayrıca işaretlemek bir Function Deyimi (Visual Basic) ile Async değiştirici.Bir Async işlev, dönüş türüne sahip Task veya Task.Bu konuyu gösteren bir örnek daha sonra da bir Async dönüş türü olan işlev Task.

AsyncSubyordamlar, burada bir değer döndürülemez için olay işleyicileri, birincil olarak kullanılır.Bir AsyncSub yordam beklediğin olamaz ve çağıranın bir AsyncSub yordam özel durumları yakalamak, Sub yordam atar.

Bir Async yordam tüm bildiremez ByRef parametreleri.

Hakkında daha fazla bilgi için Async yordamları için bkz: Async ve Await ile Zaman Uyumsuz Programlama (C# ve Visual Basic), Zaman Uyumsuz Programlarda Denetim Akışı (C# ve Visual Basic), ve Zaman Uyumsuz Dönüş Türleri (C# ve Visual Basic).

Örnek

Aşağıdaki örnek Sub adı, parametreler ve gövdesini oluşturan kod tanımlamak için ifade bir Sub yordam.

Sub computeArea(ByVal length As Double, ByVal width As Double)
    ' Declare local variable. 
    Dim area As Double 
    If length = 0 Or width = 0 Then 
        ' If either argument = 0 then exit Sub immediately. 
        Exit Sub 
    End If 
    ' Calculate area of rectangle.
    area = length * width
    ' Print area to Immediate window.
    Debug.WriteLine(area)
End Sub

Aşağıdaki örnekte, DelayAsync olan bir bir AsyncFunction dönüş türüne sahip Task. DelayAsyncolan bir Return bir tamsayı döndürür ifade.Bu nedenle, işlev bildirimi DelayAsync dönüş türüne sahip olmalıdır Task(Of Integer).Dönüş türü olduğundan Task(Of Integer), değerlendirme, Await ifade DoSomethingAsync aşağıdaki deyimi gösterildiği bir tamsayı oluşturur: Dim result As Integer = Await delayTask.

startButton_Click Yordamı örneği olan bir Async Sub yordam.Çünkü DoSomethingAsync olan bir Async işlev, görev çağrısı için DoSomethingAsync , aşağıdaki ifade gösterildiği beklediğin gerekir: Await DoSomethingAsync().startButton_ClickSub Yordamı tanımlı, ile Async değiştirici olduğundan bir Await ifadesi.

' Imports System.Diagnostics 
' Imports System.Threading.Tasks 

' This Click event is marked with the Async modifier. 
Private Async Sub startButton_Click(sender As Object, e As RoutedEventArgs) Handles startButton.Click
    Await DoSomethingAsync()
End Sub 

Private Async Function DoSomethingAsync() As Task
    Dim delayTask As Task(Of Integer) = DelayAsync()
    Dim result As Integer = Await delayTask

    ' The previous two statements may be combined into 
    ' the following statement. 
    ' Dim result As Integer = Await DelayAsync()

    Debug.WriteLine("Result: " & result)
End Function 

Private Async Function DelayAsync() As Task(Of Integer)
    Await Task.Delay(100)
    Return 5
End Function 

'  Output: 
'   Result: 5

Ayrıca bkz.

Görevler

Nasıl yapılır: Genel Bir Sınıf Kullanma (Visual Basic)

Yordam Sorunlarını Giderme (Visual Basic)

Başvuru

Implements Deyimi

Function Deyimi (Visual Basic)

Parametre Listesi (Visual Basic)

Dim Deyimi (Visual Basic)

Call Deyimi (Visual Basic)

Of Tümcesi (Visual Basic)

Kavramlar

Parametre Dizileri (Visual Basic)

Kısmi Yöntemler (Visual Basic)