[c#] 람다식을 사용하여 어떻게 함수를 인자로 받을 수 있나요?

람다식을 사용하여 함수를 인자로 받으려면, 대리자(delegate)를 사용하여 함수의 형식을 정의하고 람다식을 이 대리자 인자로 전달합니다.

예를 들어, 다음과 같이 람다식을 사용하여 함수를 인자로 받을 수 있습니다.

// 대리자(delegate)를 정의합니다.
delegate int Calculator(int a, int b);

// 인자로 받은 함수를 실행하는 메소드
static int ExecuteOperation(int x, int y, Calculator calc)
{
    return calc(x, y);
}

static void Main()
{
    // 람다식을 사용하여 덧셈 함수를 정의합니다.
    Calculator addition = (a, b) => a + b;

    // 람다식을 사용하여 곱셈 함수를 정의합니다.
    Calculator multiplication = (a, b) => a * b;

    // 덧셈 함수를 ExecuteOperation 메소드의 인자로 전달합니다.
    int result1 = ExecuteOperation(5, 3, addition); // 결과는 8입니다.

    // 곱셈 함수를 ExecuteOperation 메소드의 인자로 전달합니다.
    int result2 = ExecuteOperation(5, 3, multiplication); // 결과는 15입니다.
}

위 코드에서 Calculator는 덧셈이나 곱셈과 같은 연산을 수행하는 함수의 형식을 정의하는 대리자입니다. ExecuteOperation 메소드는 이 대리자를 인자로 받아서 실제로 대리자가 나타내는 함수를 실행합니다.

이러한 방식으로 람다식을 사용하여 함수를 인자로 받을 수 있습니다.