Aracılığıyla paylaş


Nasıl yapılır: Lambda İfadesi Oluşturma (Visual Basic)

A lambda ifade işlevi veya alt yordam bir ada sahip değil.Lambda ifade, bir temsilci türünün geçerli olduğu her yerde kullanılabilir.

Tek satırlı lambda ifade işlevi oluşturmak için

  1. Burada bir temsilci türü kullanılabilir herhangi bir durumda, anahtar sözcüğü yazın Function, aşağıdaki örnekteki gibi:

    Dim add1 = Function

  2. Parantez içinde doğrudan sonra Function, işlevin parametreleri yazın.Sonra bir ad belirtmezseniz dikkat edin Function.

    Dim add1 = Function (num As Integer)

  3. Parametre listesi işlev gövdesi olarak tek bir ifade yazın.İfade veren işlev tarafından döndürülen değeri değerdir.Kullanmak istemediğiniz bir As dönüş türü belirtmek için yan tümcesi.

    Dim add1 = Function(num As Integer) num + 1
    

    Lambda ifade bir bağımsız değişken geçirerek çağrısı.

    ' The following line prints 6.
    Console.WriteLine(add1(5))
    
  4. Alternatif olarak, aşağıdaki örnekle aynı sonucu gerçekleştirilir:

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

Tek satırlı lambda ifade alt yordam oluşturmak için

  1. Burada bir temsilci türü kullanılabilir herhangi bir durumda, anahtar sözcüğü yazın Sub, aşağıdaki örnekte gösterildiği gibi.

    Dim add1 = Sub

  2. Parantez içinde doğrudan sonra Sub, alt yordamın parametreleri yazın.Sonra bir ad belirtmezseniz dikkat edin Sub.

    Dim add1 = Sub (msg As String)

  3. Parametre listesi yordam gövde metni olarak tek bir deyimi yazın.

    Dim writeMessage = Sub(msg As String) Console.WriteLine(msg)
    

    Lambda ifade bir dize bağımsız değişkeni geçirerek çağrısı.

    ' The following line prints "Hello".
    writeMessage("Hello")
    

Çok satırlı lambda ifade işlevi oluşturmak için

  1. Burada bir temsilci türü kullanılabilir herhangi bir durumda, anahtar sözcüğü yazın Function, aşağıdaki örnekte gösterildiği gibi.

    Dim add1 = Function

  2. Parantez içinde doğrudan sonra Function, işlevin parametreleri yazın.Sonra bir ad belirtmezseniz dikkat edin Function.

    Dim add1 = Function (index As Integer)

  3. ENTER tuşuna basın.End Function Deyimi otomatik olarak eklenir.

  4. İşlev gövdesi içinde bir ifade oluşturabilir ve değerini döndürmek için şu kodu ekleyin.Kullanmak istemediğiniz bir As dönüş türü belirtmek için yan tümcesi.

    Dim getSortColumn = Function(index As Integer)
                            Select Case index
                                Case 0
                                    Return "FirstName" 
                                Case 1
                                    Return "LastName" 
                                Case 2
                                    Return "CompanyName" 
                                Case Else 
                                    Return "LastName" 
                            End Select 
                        End Function
    

    Lambda ifade bir bağımsız değişken geçirerek çağrısı.

    Dim sortColumn = getSortColumn(0)
    

Çok satırlı lambda ifade alt yordam oluşturmak için

  1. Burada bir temsilci türü kullanılabilir herhangi bir durumda, anahtar sözcüğü yazın Sub, aşağıdaki örnekte gösterildiği gibi:

    Dim add1 = Sub

  2. Parantez içinde doğrudan sonra Sub, alt yordamın parametreleri yazın.Sonra bir ad belirtmezseniz dikkat edin Sub.

    Dim add1 = Sub(msg As String)

  3. ENTER tuşuna basın.End Sub Deyimi otomatik olarak eklenir.

  4. İşlev gövdesi içinde altyordam çalıştırıldığında yürütmek için şu kodu ekleyin.

    Dim writeToLog = Sub(msg As String)
                         Dim log As New EventLog()
                         log.Source = "Application"
                         log.WriteEntry(msg)
                         log.Close()
                     End Sub
    

    Lambda ifade bir dize bağımsız değişkeni geçirerek çağrısı.

    writeToLog("Application started.")
    

Örnek

Lambda ifadeleri yaygın bir kullanımı, bir parametre türü olan bağımsız değişkeni olarak geçirilebilir bir işlev tanımlamaktır Delegate.Aşağıdaki örnekte, GetProcesses yöntemi, yerel bilgisayarda çalışan işlemler dizisi döndürür.Where``1 Yönteminden Enumerable sınıf gerektirir bir Boolean bağımsız değişken olarak temsilci.Örnek lambda ifadesinde, bu amaçla kullanılır.Verdiği True her işlem için yalnızca bir iş parçacığının olan ve içinde seçili olanlar filteredList.

Sub Main()

    ' Create an array of running processes. 
    Dim procList As Process() = Diagnostics.Process.GetProcesses

    ' Return the processes that have one thread. Notice that the type 
    ' of the parameter does not have to be explicitly stated. 
    Dim filteredList = procList.Where(Function(p) p.Threads.Count = 1)

    ' Display the name of each selected process. 
    For Each proc In filteredList
        MsgBox(proc.ProcessName)
    Next 

End Sub

Önceki örnekte yazıldığı aşağıdaki kod eşdeğerdir Dil ile Tümleşik Sorgu (LINQ) sözdizimi:

Sub Main()

    Dim filteredQuery = From proc In Diagnostics.Process.GetProcesses
                        Where proc.Threads.Count = 1
                        Select proc

    For Each proc In filteredQuery
        MsgBox(proc.ProcessName)
    Next 
End Sub

Ayrıca bkz.

Görevler

Nasıl yapılır: Visual Basic'de Başka Bir Yordama Yordam Geçirme

Başvuru

Function Deyimi (Visual Basic)

Sub Deyimi (Visual Basic)

Delegate Deyimi

Enumerable

Kavramlar

Lambda İfadeleri (Visual Basic)

Visual Basic'de LINQ'e Giriş

Diğer Kaynaklar

Temsilciler (Visual Basic)