Share via


함수 식(Visual Basic)

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

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

구성 요소

용어

내용

parameterlist

선택적 요소로서, 이 프로시저의 매개 변수를 나타내는 지역 변수 이름의 목록입니다. 목록이 비어 있는 경우에도 괄호는 있어야 합니다. 매개 변수 목록(Visual Basic)를 참조하십시오.

expression

필수적 요소로서, 단일 식입니다. 식의 형식이 함수의 반환 형식입니다.

statements

필수적 요소로서, Return 문을 사용하여 값을 반환하는 문의 목록입니다. 자세한 내용은 Return 문(Visual Basic)을 참조하십시오. 반환 값의 형식이 함수의 반환 형식입니다.

설명

람다 식은 단일 값을 계산하고 반환하는 이름이 없는 함수입니다. 대리자 형식을 사용할 수 있는 모든 위치에 람다 식을 사용할 수 있습니다. 단 RemoveHandler에 대한 인수로는 사용할 수 없습니다. 대리자에 대한 정보 및 대리자와 함께 람다 식을 사용하는 방법은 Delegate 문완화된 대리자 변환(Visual Basic)을 참조하십시오.

람다 식 구문

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

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

  • 람다 식에는 Overloads 또는 Overrides와 같은 한정자가 있을 수 없습니다.

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

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

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

  • Optional 및 Paramarray 매개 변수가 허용되지 않습니다.

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

예제

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

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

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

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

다음 예제에서는 인수를 점증적으로 늘리고 값을 반환하는 람다 식입니다. 다음 예제에서는 한 줄과 여러 줄로 구성된 함수에 대한 람다 식 구문을 보여 줍니다. 추가 예제는 람다 식(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))

람다 식은 LINQ(통합 언어 쿼리)의 여러 쿼리 연산자의 기반이 되며 메서드 기반 쿼리에서 명시적으로 사용할 수 있습니다. 다음 예제에서는 일반적인 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)

쿼리 메서드에 대한 자세한 내용은 쿼리(Visual Basic)를 참조하십시오. 표준 쿼리 연산자에 대한 자세한 내용은 표준 쿼리 연산자 개요를 참조하십시오.

참고 항목

참조

Function 문(Visual Basic)

If 연산자(Visual Basic)

개념

람다 식(Visual Basic)

Visual Basic의 연산자 및 식

값 비교(Visual Basic)

부울 식(Visual Basic)

완화된 대리자 변환(Visual Basic)

기타 리소스

Visual Basic의 문