C#에서 매개 변수로 함수 전달

  1. C#에서Func<>대리자를 사용하여 함수를 매개 변수로 전달
  2. C#에서Action<>대리자를 사용하여 함수를 다른 함수 내에서 매개 변수로 전달

이 자습서에서는 C#의 다른 함수 내에서 함수를 매개 변수로 전달하는 메서드를 소개합니다.

C#에서Func<>대리자를 사용하여 함수를 매개 변수로 전달

Func<T1, T-return> 대리자는 C#에서T1 매개 변수와T-return 반환 유형을 사용하여 함수를 정의합니다. Func<T1, t-return>델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달할 수 있습니다. 다음 코드 예제는 C#에서Func<>델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달하는 방법을 보여줍니다.

using System;

namespace pass_function_as_parameter
{
    class Program
    {
        static int functionToPass(int x)
        {
            return x + 10;
        }
        static void function(Func<int, int> functionToPass)
        {
            int i = functionToPass(22);
            Console.WriteLine("i = {0}", i);
        }
        static void Main(string[] args)
        {
            function(functionToPass);
        }
    }
}

출력:

i = 32

정수 값을 매개 변수로 취하고이를10으로 증가시키고 결과를 정수 값으로 리턴하는 함수functionToPass(int x)를 정의했습니다. Func<int, int>델리게이트를 사용하여functionToPass()함수를function()함수에 매개 변수로 전달했습니다. function()함수 내의functionToPass()함수에22값을 전달했습니다. 메인 함수에서function(functionToPass)함수 호출로 함수를 호출했습니다. Func<>델리게이트는 일부 값을 반환하는 함수를 전달하는 데만 사용할 수 있습니다.

C#에서Action<>대리자를 사용하여 함수를 다른 함수 내에서 매개 변수로 전달

값을 반환하지 않는 함수를 전달하려면 C#에서Action<>대리자를 사용해야합니다. Action<T>델리게이트는 함수 델리게이트처럼 작동합니다. T매개 변수로 함수를 정의하는 데 사용됩니다. Action<>델리게이트를 사용하여 함수를 매개 변수로 다른 함수에 전달할 수 있습니다. 다음 코드 예제는 C#에서Action<>델리게이트를 사용하여 다른 함수 내에서 함수를 매개 변수로 전달하는 방법을 보여줍니다.

using System;

namespace pass_function_as_parameter
{
    class Program
    {
        static void functionToPass2(int x)
        {
            int increment = x + 10;
            Console.WriteLine("increment = {0}",increment);
        }
        static void function2(Action<int> functionToPass2)
        {
            functionToPass2(22);
        }
        static void Main(string[] args)
        {
            function2(functionToPass2);
        }
    }
}

출력:

increment = 32

정수 값을 매개 변수로 취하고이를10으로 증가시키고 결과를 인쇄하는 함수functionToPass2(int x)를 정의했습니다. Action<int>델리게이트를 사용하여functionToPass2()함수를function()함수에 매개 변수로 전달했습니다. function2()함수 내의functionToPass2()함수에22값을 전달했습니다. 메인 함수에서function2(functionToPass2)함수 호출로 함수를 호출했습니다. Action<>델리게이트는 값을 반환하지 않는 함수를 전달하는 데만 사용할 수 있습니다.

관련 문장 - Csharp Function

  • C#에서 인라인 함수 만들기