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


Выражение функции (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

Лямбда-выражения лежат в основе многих операторов запросов в Language-Integrated Query (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)

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

См. также