[c#] 람다식을 사용하여 어떻게 함수를 반환할 수 있나요?
using System;
namespace LambdaExpressionExample
{
class Program
{
static void Main(string[] args)
{
Func<int, int, int> addFunction = (a, b) => a + b;
Func<int, int, int> multiplyFunction = (a, b) => a * b;
Func<int, int, int> ChooseFunction(string operation)
{
return operation switch
{
"add" => addFunction,
"multiply" => multiplyFunction,
_ => throw new ArgumentException("Invalid operation"),
};
}
var selectedFunction = ChooseFunction("add");
Console.WriteLine(selectedFunction(3, 4)); // Output: 7
}
}
}
위의 예제는 ChooseFunction
이라는 메서드를 사용하여 전달된 문자열에 따라 람다식을 반환합니다. add
인 경우 addFunction
을 반환하고, multiply
인 경우 multiplyFunction
을 반환합니다. 이를 통해 람다식을 사용하여 함수를 반환할 수 있습니다.