Delegate Deyimi

Bir metot temsilcisi tanımlamak için kullanılır.Bir metot temsilcisi başvurduğu bir başvuru türü olan bir Shared yöntem bir tür veya nesnesınıfının bir oluşum yöntem . Eşleşen parametre ve dönüş türleri içeren herhangi bir yordam olabilir bu metot temsilcisisınıfbir örneğini oluşturmak için kullanılır. yordam daha sonra daha sonra metot temsilcisi örneği sayesinde çağrılabilir.

[ <attrlist> ] [ accessmodifier ] _
[ Shadows ] Delegate [ Sub | Function ] name [( Of typeparamlist )] [([ parameterlist ])] [ As type ]

Bölümleri

Terim

Tanım

attrlist

İsteğe Bağlı.Bu uygulamak bu metot temsilcisiözniteliklerini listeler.Birden çok öznitelik virgülle ayrılır.İçine almalısınız Öznitelik Listesi (Visual Basic) köşeli parantez içinde ("<"ve">").

accessmodifier

İsteğe Bağlı.Hangi kod metot temsilcisierişebileceklerini belirtir.Aşağıdakilerden biri olabilir:

  • Genel.metot temsilcisi bildirir bir öğesine erişmek herhangi bir kod erişebilirsiniz.

  • Korumalı.Yalnızca kod metot temsilcisi's sınıf veya türetilmiş bir sınıf içinde erişebilirsiniz.

  • Arkadaş.Yalnızca aynı derleme içindeki kod metot temsilcisierişebilirsiniz.

  • Özel.Yalnızca kod metot temsilcisi bildirir öğesinde erişebilirsiniz.

Belirtebileceğiniz Protected Friend metot temsilcisi's sınıf, türetilmiş bir sınıfveya aynı derlemeiçindeki kod erişimini etkinleştirmek için.

Shadows

İsteğe Bağlı.Bu metot temsilcisi redeclares ve aynı adlı programlama öğesi veya bir taban sınıfaşırı yüklü öğeleri kümesi gizler gösterir.Her türlü ile bildirilen öðeyi, her türlü gölge.

Gölgeli bir öğesi, dışında gölgeleme öğesine erişilemez olduğu gelen gölgeleri türetilmiş sınıf içinde kullanılamaz.Örneğin, bir Private öğesi gölgeleri bir temel sınıf öğesi erişim izin yok kod Private öðeye eriþilir temel sınıf öğesi yerine.

Sub

İsteğe bağlı, ancak ya da Sub veya Function yer almalıdır.Bu yordam bir metot temsilcisiolarak bildirirSubyordam , bir değer döndürmez.

Function

İsteğe bağlı, ancak ya da Sub veya Function yer almalıdır.Bu yordam bir metot temsilcisiolarak bildirirFunctionbir değer döndürenyordam .

name

Gerekli.metot temsilcisi türünün adı; Standart değişken adlandırma kurallarını izler.

typeparamlist

İsteğe Bağlı.Bu metot temsilcisiiçin tür parametreleri listesi.Birden çok tür parametreleri noktalı virgüllerle ayrılır.İsteğe bağlı olarak, her tür parametre değişkeni kullanılarak bildirilebilir In ve Out genel değiştiriciler.İçine almalısınız Tür Listesi (Visual Basic) parantez içinde kendisiyle tanıtmak ve Of anahtar sözcük.

parameterlist

İsteğe Bağlı.yordam onu çaðrýldýðýnda iletilen parametre listesi.İçine almalısınız Parametre Listesi (Visual Basic) parantez içinde.

type

Belirtirseniz gereken bir Function yordam. Değerin veri türü.

Notlar

Delegate hesap özeti , parametre ve dönüş türleri metot temsilcisisınıftanımlar. Parametreleri ve dönüş türleri eşleşen herhangi bir yordam olabilir bu metot temsilcisisınıfbir örneğini oluşturmak için kullanılır. yordam daha sonra daha sonra metot temsilcisi aracılığıyla örneği metot temsilcisi's çağırarak çağrılabilir Invoke yöntem.

Temsilciler, isim uzayı, modül, sınıfveya yapı düzeyinde ancak değil bir yordamiçinde bildirilebilir.

Her metot temsilcisisınıf yöntem nesnetayini geçirilen bir oluşturucu tanımlar. Bir metot temsilcisioluşturucu bağımsız değişken bir yöntemya da lambda ifade başvuru olması gerekir.

Başvuru yöntembelirlemek için aşağıdaki sözdizimini kullanın:

AddressOf [expression.]methodname

derlemek-saat türü expression bir sınıf ya da metot temsilcisisınıf imza , imza eşleşen belirtilen adda bir yöntem içeren bir arabirim adı olmalıdır. methodname Paylaşılan bir yöntem veya bir oluşum yöntemolabilir.methodname İsteğe bağlı değildir bile oluşturmak bir metot temsilcisi sınıfvarsayılan yöntem .

Lambda ifade belirtmek için aşağıdaki sözdizimini kullanın:

Function(parm As type, parm2 As type2, ...])expression

işlev imza metot temsilcisi türü eşleşmelidir.Lambda ifadeleri hakkında daha fazla bilgi için bkz: Lambda İfadeleri (Visual Basic).

Temsilciler hakkında daha fazla bilgi için bkz: Temsilciler (Visual Basic).

Örnek

Aşağıdaki örnek Delegate hesap özeti iki sayı üzerinde çalışan ve bir sayı döndürmek için bir metot temsilcisi tanımlamak . DelegateTest yöntem bir metot temsilcisi bu tür bir kopyasını alır ve çift rakam üzerinde çalışmak için kullanır.

Delegate Function MathOperator( 
    ByVal x As Double, 
    ByVal y As Double 
) As Double 

Function AddNumbers( 
    ByVal x As Double, 
    ByVal y As Double 
) As Double 
    Return x + y
End Function 

Function SubtractNumbers( 
    ByVal x As Double, 
    ByVal y As Double
) As Double 
    Return x - y
End Function 

Sub DelegateTest( 
    ByVal x As Double, 
    ByVal op As MathOperator, 
    ByVal y As Double 
)
    Dim ret As Double
    ret = op.Invoke(x, y) ' Call the method.
    MsgBox(ret)
End Sub 

Protected Sub Test()
    DelegateTest(5, AddressOf AddNumbers, 3)
    DelegateTest(9, AddressOf SubtractNumbers, 3)
End Sub

Ayrıca bkz.

Görevler

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

Başvuru

AddressOf İşleci (Visual Basic)

Of Tümcesi (Visual Basic)

In (Genel Değiştirici) (Visual Basic)

Out (Genel Değiştirici) (Visual Basic)

Kavramlar

Visual Basic'de Genel Türler (Visual Basic)

Diğer Kaynaklar

Temsilciler (Visual Basic)

Kovaryans ve Kontravaryans (C# ve Visual Basic)