Поделиться через


Выражение Function (Visual Basic)

Объявляет параметры и код, который определяет функцию-лямбда-выражение.

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

Части

Термин

Определение

parameterlist

Необязательный. Список имен локальных переменных, представляющих параметры этой процедуры. Круглые скобки должны присутствовать даже если список пуст. См. раздел Список параметров (Visual Basic).

expression

Обязательный. Одиночное выражение. Тип выражения — возвращаемый тип функции.

statements

Обязательный. Список операторов, возвращающих значение с помощью оператораReturn . (См. раздел Оператор Return (Visual Basic).) Тип возвращаемого значения — возвращаемый тип функции.

Заметки

Лямбда-выражение представляет собой функцию без имени для вычисления и возврата значения. Можно использовать лямбда-выражение везде, где можно использовать тип делегата, за исключением использования в качестве аргумента в RemoveHandler. Дополнительные сведения о делегатах и использовании лямбда-выражений с делегатами см. в разделах Оператор Delegate и Неявное преобразование делегата (Visual Basic).

Синтаксис лямбда-выражений

Синтаксис лямбда-выражения схож с синтаксисом стандартной функции. Различия заключаются в следующем:

  • Лямбда-выражение не имеет имени.

  • Лямбда-выражения не могут включать модификаторы, такие как Overloads или Overrides.

  • Лямбда-выражения не используют предложение As для обозначения типа возвращаемого значения функции. Вместо этого тип выводится из значения, которое вычисляется в теле однострочного лямбда-выражения. или из возвращаемого значения многострочного лямбда-выражения. Например, если тело однострочного лямбда-выражения — Where cust.City = "London", возвращается тип Boolean.

  • Телом однострокового лямбда-выражения должно быть выражение, а не оператор. Тело может содержать вызов процедуры Function, но не вызов процедуры Sub.

  • Все параметры должны иметь определенный или выводимый тип данных.

  • Параметры Optional и Paramarray не разрешены.

  • Универсальные параметры не разрешены.

Пример

В следующем примере показано два способа создания простых лямбда-выражений. Первый использует Dim для предоставления имени функции. Чтобы вызвать функцию, передайте ее значение в качестве параметра.

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

Кроме того, можно и объявить и запустить функцию одновременно.

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

В следующем примере лямбда-выражение увеличивает значение своего аргумента и возвращает его. В примере показан синтаксис однострокового и многострокового лямбда-выражения для функции. Дополнительные примеры см. в разделе Лямбда-выражения (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))

Лямбда-выражения лежат в основе многих операторов запроса LINQ (Language-Integrated Query), и могут быть явно использованы в запросах на основе методов. В следующем примере показан типичный запрос 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)

Дополнительные сведения о методах запросов см. в разделе Запросы (Visual Basic). Дополнительные сведения о стандартных операторах запроса см в разделе Общие сведения о стандартных операторах запроса.

См. также

Ссылки

Оператор Function (Visual Basic)

Оператор If (Visual Basic)

Основные понятия

Лямбда-выражения (Visual Basic)

Операторы и выражения в Visual Basic

Сравнение значений (Visual Basic)

Логические выражения (Visual Basic)

Неявное преобразование делегата (Visual Basic)

Другие ресурсы

Операторы в Visual Basic