Compartilhar via


Expressão de função (Visual Basic)

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

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

Partes

Termo

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 está vazia.Consulte Lista de parâmetros (Visual Basic).

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 declarações que retorna um valor usando o Return instrução.(See Instrução Return (Visual Basic).) O tipo do valor retornado é o tipo de retorno da função.

Comentários

A 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 você pode usar um tipo delegate, exceto como um argumento para RemoveHandler.Para obter mais informações sobre o uso de expressões lambda com delegados e delegados, consulte Declaração Delegate e Conversão de delegado reduzida (Visual Basic).

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 que o valor que avalia o corpo de uma expressão lambda de linha única ou o valor de retorno de uma expressão lambda de várias linhas.Por exemplo, se o corpo de uma expressão lambda de linha única é Where cust.City = "London", seu tipo de retorno é 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 de uma chamada para um procedimento de função, mas não uma chamada para um procedimento sub.

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

Exemplo

Os exemplos a seguir mostram duas maneiras para 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))

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

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

Veja a seguir um exemplo de uma expressão lambda que incrementa seu argumento e retorna o valor.O exemplo mostra tanto a sintaxe da expressão lambda de linha e de várias linhas para uma função.Para obter mais exemplos, consulte Expressões lambda (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))

As expressões lambda dão suporte à muitos dos operadores de consulta em LINQ (Consulta Integrada à Linguagem)e pode ser usado explicitamente em consultas baseadas em método.O exemplo a seguir mostra uma típica LINQ a consulta, seguida pela tradução da consulta em 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 operadores de consulta padrão, consulte Visão geral operadores de consulta padrão.

Consulte também

Referência

Instrução de função (Visual Basic)

Se o operador (Visual Basic)

Conceitos

Expressões lambda (Visual Basic)

Operadores e expressões em Visual Basic

Comparações de valor (Visual Basic)

Expressões booleanas (Visual Basic)

Conversão de delegado reduzida (Visual Basic)

Outros recursos

Instruções em Visual Basic