Function — Wyrażenie (Visual Basic)

Oświadcza, parametrów i kod, który zdefiniować wyrażenie lambda funkcji.

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

Części

Termin

Definicja

parameterlist

Opcjonalne.Wykaz lokalnych nazw zmiennych, które reprezentują parametry tej procedury.Nawiasy muszą być obecne, nawet w przypadku, gdy lista jest pusta.See Lista parametrów (Visual Basic).

expression

Wymagane.Pojedyncze wyrażenie.Typ wyrażenia jest zwracany typ funkcji.

statements

Wymagane.Lista instrukcji, zwracającą wartość za pomocą Return instrukcji.(See Return — Instrukcja (Visual Basic).) Typ wartości zwracanej jest zwracany typ funkcji.

Uwagi

A wyrażenie lambda jest funkcja bez nazwy, która oblicza i zwraca wartość.Można użyć wyrażenia lambda gdziekolwiek można użyć typu obiektu delegowanego, z wyjątkiem jako argument do RemoveHandler.Aby uzyskać więcej informacji na temat delegatów i użycie wyrażenia lambda z delegatów, zobacz Delegate — Instrukcja i Swobodna konwersja delegatów (Visual Basic).

Składni wyrażenia lambda

Składni wyrażenia lambda przypomina standardową funkcję.Różnice są następujące:

  • Wyrażenie lambda nie ma nazwy.

  • Wyrażenia lambda nie może mieć modyfikatorów, takich jak Overloads lub Overrides.

  • Nie należy używać wyrażeń lambda As klauzuli do wyznaczenia zwracany typ funkcji.Zamiast tego typu jest wywnioskować z wartość Jednostka wyrażenie lambda jednowierszowy wynikiem lub zwracana wartość wyrażenia lambda wielowierszowe.Na przykład, jeśli organ wyrażenie Jednowierszowo-lambda jest Where cust.City = "London", jego typ zwracany jest Boolean.

  • Jednostka wyrażenie Jednowierszowo-lambda, muszą być wyrażenia, a nie w instrukcji.Jednostka może składać się z wywołania procedury funkcji, ale nie wywołanie procedury sub.

  • Albo wszystkie parametry muszą określonej przez użytkownika, można wywnioskować typy danych lub wszystkie.

  • Parametry opcjonalne i Paramarray nie są dozwolone.

  • Parametry rodzajowe nie są dozwolone.

Przykład

W poniższych przykładach przedstawiono dwie metody tworzenia wyrażeń prostych lambda.Pierwszy zastosowań Dim o podanie nazwy funkcji.Wywołanie funkcji, Wyślij w wartości parametru.

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

Alternatywnie można zadeklarować i uruchomić funkcję w tym samym czasie.

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

Poniżej znajduje się przykładem wyrażenie lambda, która zwiększa jego argument i zwraca wartość.W przykładzie pokazano zarówno lambda jednowierszowym i wielowierszowym wyrażenia składni funkcji.Aby uzyskać więcej przykładów, zobacz Lambda — Wyrażenia (Visual Basic).

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))

Wyrażenia lambda opierają się wielu operatorów kwerendy w Zapytanie o języku zintegrowanym (LINQ)i mogą być wyraźnie używane w kwerendach opartych na metodzie.W poniższym przykładzie pokazano typową LINQ kwerendy, następuje translacja kwerendy do formatu metody.

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)

Aby uzyskać więcej informacji na temat metod kwerend zobacz Zapytania (Visual Basic).Aby uzyskać więcej informacji na temat operatorów standardowej kwerendy, zobacz Standardowe operatory zapytań — Omówienie.

Zobacz też

Informacje

Function — Instrukcja (Visual Basic)

If — Operator (Visual Basic)

Koncepcje

Lambda — Wyrażenia (Visual Basic)

Operatory i wyrażenia w Visual Basic

Porównania wartości (Visual Basic)

Wyrażenia logiczne (Visual Basic)

Swobodna konwersja delegatów (Visual Basic)

Inne zasoby

Instrukcje w Visual Basic