Wyrażenie funkcyjne (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 Instrukcja return (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 Instrukcja delegata i Konwersja obiektu delegowanego obniżone (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 Wyrażenia lambda (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 Language-Integrated Query (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 Kwerendy (Visual Basic).Aby uzyskać więcej informacji na temat operatorów standardowej kwerendy, zobacz Omówienie operatory kwerendy standardowe.
Zobacz też
Informacje
Instrukcji funkcyjnej (Visual Basic)
Koncepcje
Wyrażenia lambda (Visual Basic)
Operatorów i wyrażeń w języku Visual Basic
Wartość porównania (Visual Basic)
Wyrażenia boolowskie (Visual Basic)
Konwersja obiektu delegowanego obniżone (Visual Basic)