Func 대리자로 메서드 또는 람다 식 대신 호출하기
이번에는 프로젝트 기반 소스로 Func 대리자를 사용해 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
Func 대리자로 메서드 또는 람다 식 호출: FuncDelegate.cs
using System;
class FuncDelegate
{
static void Main()
{
//① Add 함수 직접 호출
Console.WriteLine(Add(3, 5));
//② Func 대리자로 Add 함수 대신 호출: 반환값이 있는 메서드를 대신 호출
Func<int, int, string> AddDelegate = Add; //Add 메서드를 대신 호출
Console.WriteLine(AddDelegate(3, 5));
//③ 람다 식(Lambda): 메서드 -> 무명 메서드 -> 람다 식으로 줄여 표현
Func<int, int, string> AddLambda = (a, b) => (a + b).ToString();
Console.WriteLine(AddLambda(3, 5));
}
//두 수의 합을 문자열로 반환
static string Add(int a, int b) => (a + b).ToString();
}
실행 결과
8 8 8
Func 대리자를 사용하면 동일한 매개변수와 반환값이 있는 메서드를 대신해서 호출할 수 있습니다. 특정 메서드가 구현되어 있지 않으면 무명 메서드 또는 람다 식을 사용하여 바로 함수를 만들고 호출할 수 있습니다.