Share via


함수 식(Visual Basic)

함수 람다 식을 정의하는 매개 변수 및 코드를 선언합니다.

구문

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

부분

용어 정의
parameterlist 선택 사항. 이 프로시저의 매개 변수를 나타내는 지역 변수 이름 목록입니다. 목록이 비어 있는 경우에도 괄호가 있어야 합니다. 매개 변수 목록을 참조하세요.
expression 필수입니다. 단일 식입니다. 식의 형식은 함수의 반환 형식입니다.
statements 필수입니다. Return 문을 사용하여 값을 반환하는 문 목록입니다. (Return 문을 참조하세요.) 반환되는 값의 형식은 함수의 반환 형식입니다.

설명

람다 식은 값을 계산하고 반환하는 이름이 없는 함수입니다. RemoveHandler에 대한 인수를 제외하고 대리자 형식을 사용할 수 있는 모든 위치에서 람다 식을 사용할 수 있습니다. 대리자 및 대리자와 함께 람다 식 사용에 대한 자세한 내용은 대리자 문완화된 대리자 변환을 참조하세요.

람다 식 구문

람다 식의 구문은 표준 함수의 구문과 유사합니다. 차이점은 다음과 같습니다.

  • 람다 식에는 이름이 없습니다.

  • 람다 식에는 Overloads 또는 Overrides 같은 한정자를 사용할 수 없습니다.

  • 람다 식은 함수의 반환 형식을 지정하는 As 절을 사용하지 않습니다. 대신 한 줄 람다 식의 본문이 계산하는 값 또는 여러 줄 람다 식의 반환 값에서 형식을 유추합니다. 예를 들어 한 줄 람다 식의 본문이 Where cust.City = "London"인 경우 반환 형식은 Boolean입니다.

  • 한 줄 람다 식의 본문은 문이 아닌 식이어야 합니다. 본문은 함수 프로시저 호출로 구성되지만 하위 프로시저에 대한 호출은 구성할 수 없습니다.

  • 모든 매개 변수에는 지정된 데이터 형식이 있거나 모두 유추되어야 합니다.

  • 선택적 매개 변수 및 Paramarray 매개 변수는 허용되지 않습니다.

  • 제네릭 매개 변수는 허용되지 않습니다.

예 1

다음 예제에서는 간단한 람다 식을 만드는 두 가지 방법을 보여 줍니다. 첫 번째는 함수의 이름을 제공하기 위해 Dim을(를) 사용합니다. 함수를 호출하려면 매개 변수 값을 보냅니다.

Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))

예제 2

또는 함수를 선언하고 동시에 실행할 수 있습니다.

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

예 3

다음은 인수를 증가시키고 값을 반환하는 람다 식의 예입니다. 이 예제에서는 함수에 대한 한 줄 및 여러 줄 람다 식 구문을 모두 보여 줍니다. 자세한 예제는 람다 식을 참조하세요.

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))

예시 4

람다 식은 LINQ(Language-Integrated Query)의 많은 쿼리 연산자의 기반이 되며 메서드 기반 쿼리에서 명시적으로 사용할 수 있습니다. 다음 예제에서는 일반적인 LINQ 쿼리를 보여 주며 쿼리를 메서드 형식으로 변환합니다.

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)

쿼리 메서드에 대한 자세한 내용은 쿼리를 참조하세요. 표준 쿼리 연산자에 대한 자세한 내용은 표준 쿼리 연산자 개요를 참조하세요.

참고 항목