void FOPMain2() { WriteLine("\n61.3 고차함수"); WriteLine("고차함수란, 함수 자체를 매개변수 또는 반환값으로 가지는 함수이다."); // [a] Action<T> 매개변수 전달 : 문자열을 받아 출력하는 함수 정의 FunctionParameterWithAction(action, "고차함수 : 매개변수"); // [b] Func<T> 매개변수 전달 : 정수값을 받아 두 번 곱한 후 다시 정수값 반환 FunctionParameterWithFunc(func, 3); // [c] Action<T> 반환값 FunctionReturnValueWithAction()("고차함수 : 반환값"); // [d] Func<T> 반환값 int number = 3; int result = FunctionReturnValueWithFunc()(number); WriteLine($"{number} * {number} = {result}"); }
static void Main() { //[A] Action<T> 매개 변수 전달: 문자열을 받아 출력하는 함수 정의 Action <string> action = message => Console.WriteLine(message); FunctionParameterWithAction(action, "고차 함수: 매개 변수"); //[B] Func<T> 매개 변수 전달: 정수 값을 받아 두 번 곱한 후 다시 정수 값 반환 Func <int, int> func = x => x * x; FunctionParameterWithFunc(func, 3); //[C] Action<T> 반환값 FunctionReturnValueWithAction()("고차 함수: 반환값"); //[D] Func<T> 반환값 int number = 3; int result = FunctionReturnValueWithFunc()(number); Console.WriteLine($"{number} * {number} = {result}"); // 9 }