Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Declara os parâmetros e o código que definem uma expressão lambda de função.
Sintaxe
Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
[ statements ]
End Function
Partes
| Prazo | Definição |
|---|---|
parameterlist |
Opcional. Uma lista de nomes de variáveis locais que representam os parâmetros deste procedimento. Os parênteses devem estar presentes mesmo quando a lista estiver vazia. Consulte a lista de parâmetros. |
expression |
Obrigatório Uma única expressão. O tipo da expressão é o tipo de retorno da função. |
statements |
Obrigatório Uma lista de instruções que retorna um valor usando a Return instrução. (Consulte a instrução Return.) O tipo do valor retornado é o tipo de retorno da função. |
Observações
Uma expressão lambda é uma função sem um nome que calcula e retorna um valor. Você pode usar uma expressão lambda em qualquer lugar em que possa usar um tipo delegado, exceto como um argumento para RemoveHandler. Para obter mais informações sobre delegados e o uso de expressões lambda com delegados, consulte Declaração delegada e conversão de delegado descontraída.
Sintaxe da expressão Lambda
A sintaxe de uma expressão lambda é semelhante à de uma função padrão. As diferenças são as seguintes:
Uma expressão lambda não tem um nome.
Expressões Lambda não podem ter modificadores, como
OverloadsouOverrides.As expressões Lambda não usam uma
Ascláusula para designar o tipo de retorno da função. Em vez disso, o tipo é inferido do valor que o corpo de uma expressão lambda de linha única avalia ou o valor retornado de uma expressão lambda de várias linhas. Por exemplo, se o corpo de uma expressão lambda de linha única forWhere cust.City = "London", seu tipo de retorno seráBoolean.O corpo de uma expressão lambda de linha única deve ser uma expressão, não uma instrução. O corpo pode consistir em uma chamada para um procedimento de função, mas não uma chamada para um sub procedimento.
Todos os parâmetros devem ter tipos de dados especificados ou todos devem ser inferidos.
Parâmetros opcionais e paramarray não são permitidos.
Parâmetros genéricos não são permitidos.
Exemplo 1
Os exemplos a seguir mostram duas maneiras de criar expressões lambda simples. O primeiro usa um Dim para fornecer um nome para a função. Para chamar a função, você envia um valor para o parâmetro.
Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))
Exemplo 2
Como alternativa, você pode declarar e executar a função ao mesmo tempo.
Console.WriteLine((Function(num As Integer) num + 1)(5))
Exemplo 3
Veja a seguir um exemplo de uma expressão lambda que incrementa seu argumento e retorna o valor. O exemplo mostra a sintaxe de expressão lambda de linha única e de várias linhas para uma função. Para obter mais exemplos, consulte Expressões Lambda.
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))
Exemplo 4
As expressões Lambda são subjacentes a muitos dos operadores de consulta no LINQ (consulta Language-Integrated) e podem ser usadas explicitamente em consultas baseadas em método. O exemplo a seguir mostra uma consulta LINQ típica, seguida pela tradução da consulta para o formato de método.
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)
Para obter mais informações sobre métodos de consulta, consulte Consultas. Para obter mais informações sobre operadores de consulta padrão, consulte a visão geral dos operadores de consulta padrão.