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