Wyrażenie podrzędne (Visual Basic)

Deklaruje parametry i kod definiujący wyrażenie lambda podroutine.

Składnia

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

Części

Termin Definicja
parameterlist Opcjonalny. Lista lokalnych nazw zmiennych reprezentujących parametry procedury. Nawiasy muszą być obecne nawet wtedy, gdy lista jest pusta. Aby uzyskać więcej informacji, zobacz Lista parametrów.
statement To jest wymagane. Pojedyncza instrukcja.
statements To jest wymagane. Lista instrukcji.

Uwagi

Wyrażenie lambda jest podroutyną, która nie ma nazwy i wykonuje co najmniej jedną instrukcję. Możesz użyć wyrażenia lambda w dowolnym miejscu, w którym można użyć typu delegata, z wyjątkiem argumentu do RemoveHandler. Aby uzyskać więcej informacji na temat delegatów i używania wyrażeń lambda z delegatami, zobacz Delegowanie instrukcji i Zrelaksowana konwersja delegatów.

Składnia wyrażeń lambda

Składnia wyrażenia lambda przypomina składnię standardowej podrouty. Różnice są następujące:

  • Wyrażenie lambda nie ma nazwy.

  • Wyrażenie lambda nie może mieć modyfikatora, takiego jak Overloads lub Overrides.

  • Treść jednowierszowego wyrażenia lambda musi być instrukcją, a nie wyrażeniem. Treść może składać się z wywołania procedury podrzędnej, ale nie wywołania procedury funkcji.

  • W wyrażeniu lambda wszystkie parametry muszą mieć określone typy danych lub wszystkie parametry muszą zostać wywnioskowane.

  • Opcjonalne i ParamArray parametry nie są dozwolone w wyrażeniach lambda.

  • Parametry ogólne nie są dozwolone w wyrażeniach lambda.

Przykład

Poniżej znajduje się przykład wyrażenia lambda, które zapisuje wartość w konsoli. W przykładzie przedstawiono zarówno składnię wyrażenia lambda jednowierszowego, jak i wielowierszowego dla podroutyny. Aby uzyskać więcej przykładów, zobacz Wyrażenia 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")

Zobacz także