함수 식(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(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)
쿼리 메서드에 대한 자세한 내용은 쿼리(Visual Basic)를 참조하십시오.표준 쿼리 연산자에 대한 자세한 내용은 표준 쿼리 연산자 개요를 참조하십시오.