본문 바로가기

개인공부/C#

[C#] Func, Action 대리자

 

 

■ Func 대리자, Action 대리자:

  - .NET 라이브러리에서 제공하는 사전에 정의된 대리자

  - 일반화(Generalization)와 최대 16개 매개변수 지원

  - Func 대리자 : 반환 값이 있는 대리자

  - Action 대리자 : 반환 값이 없는 대리자

 

■ Func 대리자

 

 

■ Example

 

using System;

namespace LambdaExample
{
    class Program
    {        
        static void Main(string[] args)
        {
            Func<int> func1 = () => 100;
            Console.WriteLine($"func1() 반환값 : {func1()}");

            Func<int, int> func2 = (x) => x + 100;
            Console.WriteLine($"func2(100) 반환값 : {func2(100)}");

            Func<int, int, string> func3 = (x, y) => $"결과는 {x + y} 입니다.";
            Console.WriteLine($"func3(100, 200) 반환값 : {func3(100, 200)}");
        }
    }
}

 

Example 결과

 

■ Action 대리자

 

 

■ Example

using System;

namespace LambdaExample
{
    class Program
    {        
        static void Main(string[] args)
        {
            Action act1 = () => Console.WriteLine("입력 값 없는 형태"); ;
            act1();

            Action<int, int> act2 = (x, y) => Console.WriteLine($"x : {x}, y : {y} 입니다.");
            act2(100, 200);

            string result = string.Empty;
            Action<string> act3 = (str) => result = $"안녕 {str}";
            
            act3("memoo");
            Console.WriteLine($"result : {result}");
        }
    }
}

 

Example 결과

 

 

 

'개인공부 > C#' 카테고리의 다른 글

[C#] LINQ  (0) 2023.02.21
[C#] 람다식(Lambda Expression)  (0) 2023.02.17
[C#] 대리자(Delegate), 이벤트(Event) 차이점  (0) 2023.02.15
[C#] 이벤트(Event)  (0) 2023.02.14
[C#] 대리자(Delegate)  (0) 2022.10.13