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


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