[C# 문법] 델리게이트(Delegate) 이용하여 함수를 매개변수로 넣기
- C#/C# 문법
- 2021. 1. 10. 00:00
안녕하세요.
오늘은 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(10, 20, "+", Sum);
Calculate(30, 10, "-", Minus);
}
}
}
|
cs |
실행 결과
위와 같이 델리게이트 콜백함수를 이용해서 함수를 매개변수로 넣어 보았습니다.
감사합니다.^^
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# List에 저장된 특정 값의 인덱스 번호 가져오는 방법 (3) | 2021.03.01 |
---|---|
[C# 문법] C# is 연산자 (0) | 2021.01.12 |
[C# 문법] C# as 연산자 (0) | 2020.12.23 |
[C# 문법] C# async 비동기 메서드 반환값 받기 (0) | 2020.12.22 |
[C# 문법] C# async, await 이용하여 비동기 예제 프로그램 만들기 (0) | 2020.12.21 |
이 글을 공유하기