더북(TheBook)

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

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.