Partilhar via


Expressões de função

Declara os parâmetros e o código que definem uma expressão lambda.

Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] ) _
    expression

Partes

  • parameterlist
    Opcional.Uma lista de nomes de variável locais que representam os parâmetros deste procedimento.Os parênteses devem estar presentes, mesmo quando a lista está vazia.SeeLista de parâmetros.

  • expression
    Obrigatório.Uma única expressão.O valor da expressão determina o tipo da função e o valor retornado quando a função é chamada.

Comentários

Uma expressão lambda é uma função sem um nome que calcula e retorna um único valor.Você pode usar uma expressão lambda em qualquer lugar você pode usar um tipo de delegado, exceto sistema autônomo um argumento para RemoveHandler. Para obter mais informações sobre delegados e o uso de expressões lambda com delegados, consulte Instrução Delegate e Conversão de delegado reduzida.

Sintaxe de expressões lambda

A sintaxe de uma expressão lambda lembra a 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 Overloads ou Overrides.

  • Expressões lambda não usam uma cláusula As para designar o tipo de retorno da função.Em vez disso, o tipo é inferido do valor que o corpo da expressão lambda avalia.Por exemplo, se o corpo da expressão lamba for Where cust.City = "London", seu tipo de retorno é Boolean.

  • O corpo da função deve ser uma expressão, não uma instrução.O corpo pode consistir de uma chamada para um procedimento de função, mas não uma chamada para um procedimento sub.

  • Não há nenhuma instrução Return.O valor retornado pela função é o valor da expressão no corpo da função.

  • Não há nenhuma instrução End Function.

  • Ou 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.

Como resultado dessas restrições e das maneiras pelas quais as expressões lambda são usadas, elas geralmente são curtas e pouco complicadas.

Exemplo

Os exemplos a seguir mostram duas maneiras de criar expressões lambda simples.O primeiro usa um Dim Forneça 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))

Como alternativa, você pode declarar e executar a função ao mesmo tempo.

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

As expressões lambda dão suporte à muitos dos operadores de consulta em LINQ (consulta integrada à linguagem)e pode ser usado explicitamente em consultas de método. O exemplo a seguir mostra um típico LINQ consulta, seguida pela tradução da consulta no 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(Visual Basic).Para obter mais informações sobre os operadores de consulta padrão, consulte Visão geral sobre operadores de consulta padrão.

Consulte também

Conceitos

Expressões Lambda

Operadores e expressões em Visual Basic

Visão geral de instruções

Comparações de Valor

Expressões booleanas

Conversão de delegado reduzida

Referência

Instrução Function (Visual Basic)

Se operador