[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
메소드는 이 대리자를 인자로 받아서 실제로 대리자가 나타내는 함수를 실행합니다.
이러한 방식으로 람다식을 사용하여 함수를 인자로 받을 수 있습니다.