[C# 문법] 델리게이트(Delegate) 이용하여 함수를 매개변수로 넣기

안녕하세요.

 

오늘은 C# 문법에서 델리게이트 구문을 이용하여 함수를 매개변수로 넣는 방법에 대해서 알려 드리려고 합니다.

 

보통 함수를 매개변수로 넣는 경우는 콜백인 경우에 대부분 많이들 그렇게 프로그램을 작성하게 되는데요.

 

콜백이란 그럼 어떤 것인지 간단하게 설명을 드리자면,

 

예를 들어 A메서드, B메서드 2개의 메서드가 있을 때 A라는 메서드를 호출할 때, B라는 메서드를 넘겨주어 A 메서드로 하여금 B 메서드를 호출, 실행 시키도록 하는 것을 말하고, 이때 A 메서드를 콜백 메서드라고 합니다.

 

그럼 위의 개념을 토대로 예제 코드를 작성해 보도록 하겠습니다.

 

예제 코드
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
48
49
50
51
52
53
using System;
 
namespace DelegateTest
{
    class Program
    {
        //델리게이트 선언
        public delegate int TestDelegate(int num1, int num2); 
 
        /// <summary>
        /// 계산기라는 콜백 메서드 선언
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <param name="dele"></param>
        public static void Calculate(int num1, int num2, string oper, TestDelegate dele)
        {
            Console.WriteLine($"num1 {oper} num2 = {dele(num1, num2)}");
        }
 
        /// <summary>
        /// 덧셈
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <returns></returns>
        public static int sum(int num1, int num2)
        {
            return num1 + num2;
        }
 
        /// <summary>
        /// 뺄셈
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <returns></returns>
        public static int minus(int num1, int num2)
        {
            return num1 - num2;
        }
 
        static void Main(string[] args)
        {
            TestDelegate Sum = new TestDelegate(sum);
            TestDelegate Minus = new TestDelegate(minus);
 
            Calculate(1020"+", Sum);
            Calculate(3010"-", Minus);
        }
    }
}
 
cs

 

실행 결과

 위와 같이 델리게이트 콜백함수를 이용해서 함수를 매개변수로 넣어 보았습니다.

 

감사합니다.^^

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY