Compartilhar via


Subexpressão (Visual Basic)

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

Sintaxe

Sub ( [ parameterlist ] ) statement  
- or -  
Sub ( [ parameterlist ] )  
  [ statements ]  
End Sub  

Partes

Termo Definição
parameterlist Opcional. Uma lista de nomes de variáveis locais que representam os parâmetros do procedimento. Os parênteses devem estar presentes mesmo quando a lista estiver vazia. Para obter mais informações, confira Lista de parâmetros.
statement Obrigatórios. Uma única instrução.
statements Obrigatórios. Uma lista de instruções.

Comentários

Uma expressão lambda é uma sub-rotina que não tem um nome e que executa uma ou mais instruções. 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 Instrução Delegate e Conversão de delegado reduzida.

Sintaxe da expressão lambda

A sintaxe de uma expressão lambda é semelhante à de uma sub-rotina padrão. As diferenças são:

  • Uma expressão lambda não tem um nome.

  • Uma expressão lambda não pode ter um modificador, como Overloads ou Overrides.

  • O corpo de uma expressão lambda de linha única deve ser uma instrução, não uma expressão. O corpo pode consistir em uma chamada para um sub-procedimento, mas não uma chamada para um procedimento Function.

  • Em uma expressão lambda, todos os parâmetros devem ter tipos de dados especificados ou todos os parâmetros devem ser inferidos.

  • Parâmetros ParamArray e opcionais não são permitidos em expressões lambda.

  • Parâmetros genéricos não são permitidos em expressões lambda.

Exemplo

A seguir está um exemplo de uma expressão lambda que grava um valor no console. O exemplo mostra a sintaxe de expressão lambda de linha única e de várias linhas para uma sub-rotina. Para obter mais exemplos, confira Expressões lambda.

Dim writeline1 = Sub(x) Console.WriteLine(x)
Dim writeline2 = Sub(x)
                     Console.WriteLine(x)
                 End Sub

' Write "Hello".
writeline1("Hello")

' Write "World"
writeline2("World")

Confira também