[C# 문법] C# Func 대리자 사용방법



안녕하세요.

 

오늘은 어제 포스팅 했던 Action 대리자 다음 포스팅으로써, Func 대리자 사용 방법에 대해서 알려 드리려고 합니다.

 

Func 대리자는 Action 대리자와 달리 파라미터 값이 있고, 반환값이 있는데요.

 


[Func 대리자 형태]


Func<out TResult>

Func<in T1, out TResult>

Func<in T1,in T2, out TResult>

Func<in T1,in T2,...in T16, out TResult>

 

Func 대리자의 형태는 위와 같습니다. Action 대리자와는 다르게 입력값과 반환값이 있는 것을 보셨나요?

 

제일 오른쪽 끝이 반환값의 타입이고 그 외 파라미터들은 입력 파라미터(매개변수)의 타입들입니다.

 

그럼 위 형태를 이용해서 Func 대리자 예제 프로그램을 작성해 보도록 하겠습니다.


예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Test0202

{

    class Program

    {

        static void Main(string[] args)

        {

            //Func 대리자 사용법  3가지

 

            //1. 기존 메서드 지정

            Func<stringstring> _func1 = Print;

            Console.WriteLine(_func1("1. 기존 메서드 지정"));

 

            Func<intintint> _func2 = Sum;

            string msg = string.Format("x + y = {0} 입니다.", _func2(48));

            Console.WriteLine(msg);

 

            //2. 무명 메서드 지정

            Func<intintint> _func3 = delegate (int x, int y)

            {

                return x + y;

            };

            string msg2 = string.Format("x + y = {0}", _func3(510));

            Console.WriteLine(msg2);

 

            //3. 람다식 사용

            Func<intstring> _func4 = x => { return "반환값은 : " + x + 입니다."; };

            Console.WriteLine(_func4(100));

        }

 

        public static string Print(string msg)

        {

            return msg;

        }

 

        public static int Sum(int x, int y)

        {

            return x + y; 

        }

    }

}

 

Colored by Color Scripter

cs


실행 결과



이로써 Func 대리자 사용 방법에 대해서 알아 보았습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY