728x90
c++에서 함수포인터와 유사한 delegate(대리자)를 간단한 사용법을 통해 알아보자
1. delegate 선언
//delegate 반환형식 이름(사용할 매개변수)
delegate int TestDelegate(int item);
2. delegate 사용 예제
//delegate 선언
delegate void SayWhat();
//Hello 출력함수
static void Hello(){
Console.WriteLine("Hello");
}
//Bonjour 출력함수
static void Bonjour(){
Console.WriteLine("Bonjour");
}
//delegate사용예제
static void IWantToSay(SayWhat say){
say();
}
static void Main(string[] args){
//함수저장
SayWhat say = new SayWhat(Hello);
//함수저장2
say += Bonjour;
//함수해제
//say -= Bonjour
IWantToSay(say);
}
//출력
Hello
Bonjour
위 방식의 장점
1. 함수여러개를 간단한코드로 호출 가능하다
2. 간편하게 원하는 함수를 호출하게 할 수 있다.
3. 유용한 delegate
// 반환타입이 있을경우
Func<매개변수타입1, 매개변수타입2, ..... 반환타입>
// 반환타입이 없는경우
Action<매개변수타입1, 매개변수타입2,,,, 매개변수타입16>
Func 나 Action처럼 이미 c#에 유용한 delegate가 있다.
728x90
'언어 정리 > c#' 카테고리의 다른 글
c# - delegate 사용법 (2) | 2023.11.26 |
---|---|
c# 코드시간 측정 방법 (0) | 2023.02.16 |
c# 가변 배열 (0) | 2022.12.31 |
c# 문자열 정리 (0) | 2022.12.31 |
열거형(enum) (0) | 2022.12.27 |