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 대리자를 사용하면 동일한 매개변수와 반환값이 있는 메서드를 대신해서 호출할 수 있습니다. 특정 메서드가 구현되어 있지 않으면 무명 메서드 또는 람다 식을 사용하여 바로 함수를 만들고 호출할 수 있습니다.