Aracılığıyla paylaş


İşlev İfadesi (Visual Basic)

Bir işlev lambda ifadesi tanımlayan parametreleri ve kodu bildirir.

Sözdizimi

Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
  [ statements ]
End Function

Parçalar

Süre Tanım
parameterlist Opsiyonel. Bu yordamın parametrelerini temsil eden yerel değişken adlarının listesi. Liste boş olsa bile parantezlerin mevcut olması gerekir. Bkz . Parametre Listesi.
expression Gerekli. Tek bir ifade. İfadenin türü işlevin dönüş türüdür.
statements Gerekli. deyimini kullanarak Return bir değer döndüren deyimlerin listesi. (Bkz . Return Deyimi.) Döndürülen değerin türü işlevin dönüş türüdür.

Açıklamalar

Lambda ifadesi, bir değeri hesaplayan ve döndüren adı olmayan bir işlevdir. Lambda ifadesini, için bağımsız değişken RemoveHandlerolarak dışında temsilci türünü kullanabileceğiniz her yerde kullanabilirsiniz. Temsilciler ve temsilcilerle lambda ifadelerinin kullanımı hakkında daha fazla bilgi için bkz. Temsilci Deyimi ve Gevşek Temsilci Dönüştürme.

Lambda ifadeleri söz dizimi

Lambda ifadesinin söz dizimi, standart işlevin söz dizimine benzer. Farklar şunlardır:

  • Lambda ifadesinin adı yok.

  • Lambda ifadelerinin Overloads veya Overrides gibi değiştiricileri olamaz.

  • Lambda ifadeleri işlevin dönüş türünü belirlemeye yönelik bir As yan tümce kullanmaz. Bunun yerine, türü tek satırlı lambda ifadesinin gövdesinin değerlendireceği değerden veya çok satırlı lambda ifadesinin dönüş değerinden çıkarılır. Örneğin, tek satırlı lambda ifadesinin gövdesi ise Where cust.City = "London", dönüş türü olur Boolean.

  • Tek satırlı lambda ifadesinin gövdesi bir ifade olmalı, deyim olmamalıdır. Gövde, bir işlev yordamına yapılan çağrıdan oluşabilir, ancak alt yordama yapılan bir çağrıdan oluşabilir.

  • Tüm parametrelerin belirtilen veri türleri olması veya tümünün çıkarılması gerekir.

  • İsteğe bağlı ve Paramarray parametrelerine izin verilmez.

  • Genel parametrelere izin verilmez.

Örnek 1

Aşağıdaki örneklerde basit lambda ifadeleri oluşturmanın iki yolu gösterilmektedir. İlki işlevi için bir ad sağlamak için kullanır Dim . İşlevi çağırmak için parametresi için bir değer gönderirsiniz.

Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))

Örnek 2

Alternatif olarak, işlevi aynı anda bildirebilir ve çalıştırabilirsiniz.

Console.WriteLine((Function(num As Integer) num + 1)(5))

Örnek 3

Aşağıda bağımsız değişkenini artıran ve değeri döndüren bir lambda ifadesi örneği verilmiştir. Örnekte bir işlevin hem tek satırlı hem de çok satırlı lambda ifade söz dizimi gösterilmektedir. Daha fazla örnek için bkz. Lambda İfadeleri.

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function

' Write the value 2.
Console.WriteLine(increment1(1))

' Write the value 4.
Console.WriteLine(increment2(2))

Örnek 4

Lambda ifadeleri, Language-Integrated Sorgusundaki (LINQ) sorgu işleçlerinin çoğunu temel alır ve yöntem tabanlı sorgularda açıkça kullanılabilir. Aşağıdaki örnekte tipik bir LINQ sorgusu ve ardından sorgunun yöntem biçimine çevirisi gösterilmektedir.

Dim londonCusts = From cust In db.Customers
                       Where cust.City = "London"
                       Select cust

' This query is compiled to the following code:
Dim londonCusts = db.Customers.
                  Where(Function(cust) cust.City = "London").
                  Select(Function(cust) cust)

Sorgu yöntemleri hakkında daha fazla bilgi için bkz. Sorgular. Standart sorgu işleçleri hakkında daha fazla bilgi için bkz. Standart Sorgu İşleçlerine Genel Bakış.

Ayrıca bakınız