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