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:
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)
In (Genel Değiştirici) (Visual Basic)
Out (Genel Değiştirici) (Visual Basic)
Kavramlar
Visual Basic'de Genel Türler (Visual Basic)