Выражение Function (Visual Basic)
Объявляет параметры и код, определяющие лямбда-выражение функции.
Синтаксис
Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
[ statements ]
End Function
Детали
Термин | Определение |
---|---|
parameterlist |
Необязательно. Список имен локальных переменных, представляющих параметры этой процедуры. Скобки должны присутствовать, даже если список пуст. См . список параметров. |
expression |
Обязательный. Одно выражение. Тип выражения — это возвращаемый тип функции. |
statements |
Обязательный. Список операторов, возвращающих значение с помощью инструкции Return . (См. раздел Оператор Return.) Тип возвращаемого значения — возвращаемый тип функции. |
Замечания
Лямбда-выражение — это функция без имени, вычисляющего и возвращающего значение. Вы можете использовать лямбда-выражение в любом месте, где можно использовать тип делегата, за исключением аргумента RemoveHandler
. Дополнительные сведения об делегатах и использовании лямбда-выражений с делегатами см. в разделе "Оператор делегата" и "Расслабленное преобразование делегатов".
Синтаксис лямбда-выражений
Синтаксис лямбда-выражения напоминает синтаксис стандартной функции. Имеются следующие различия:
Лямбда-выражение не имеет имени.
Лямбда-выражения не могут иметь модификаторы, например
Overloads
илиOverrides
.Лямбда-выражения не используют
As
предложение для обозначения возвращаемого типа функции. Вместо этого тип выводится из значения, которое вычисляется текстом лямбда-выражения с одной строкой или возвращаемым значением многострочного лямбда-выражения. Например, если текст однострочного лямбда-выражения имеетWhere cust.City = "London"
тип возвратаBoolean
.Текст лямбда-выражения одной строки должен быть выражением, а не оператором. Текст может состоять из вызова процедуры функции, но не вызова вложенной процедуры.
Все параметры должны иметь указанные типы данных или все должны быть выведены.
Необязательные и параметры Paramarray не допускаются.
Универсальные параметры не разрешены.
Пример 1
В следующих примерах показаны два способа создания простых лямбда-выражений. Первый использует Dim
имя функции. Чтобы вызвать функцию, вы отправляете значение параметра.
Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))
Пример 2
Кроме того, можно объявить и запустить функцию одновременно.
Console.WriteLine((Function(num As Integer) num + 1)(5))
Пример 3
Ниже приведен пример лямбда-выражения, которое увеличивает его аргумент и возвращает значение. В примере показан синтаксис однострочного и многострочного лямбда-выражения для функции. Дополнительные примеры см . в лямбда-выражениях.
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))
Пример 4
Лямбда-выражения лежат в основе многих операторов запросов в LINQ и могут использоваться явным образом в запросах на основе методов. В следующем примере показан типичный запрос LINQ, за которым следует перевод запроса в формат метода.
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)
Дополнительные сведения о методах запросов см. в разделе "Запросы". Дополнительные сведения о стандартных операторах запросов см. в разделе "Общие сведения о стандартных операторах запросов".