본문 바로가기
프로그래밍/c#

c#_49 델리게이트 , 델리게이트 체인 Delegate

by 지나팩 2022. 2. 14.

델리게이트는 함수를 대신해서 호출해주는 대리자입니다. 직접 함수를 호출하는 것이 아닌 함수 호출시 매개변수로 함수를 참조하여 호출합니다. 좀 더 쉽게 보자면 함수를 담아둘 수 있는 변수라고도 볼 수 있겠네요.

아래의 예제를 통해서 살펴보시죠.

위 예제에서 보듯 델리게이트는 함수를 다른 함수로 전달할 수 있습니다. 이 델리게이트에 함수를 대입함으로써 함수의 주소가 델리게이트에 할당이 되고 델리게이트를 매개변수로 넘겨 함수를 대리호출하게 됩니다.

단 주의해야 할 점은 델리게이트의 매개 변수 타입과 갯수 그리고 반환 형식이 전달하고자하는 함수와 동일해야 합니다.

 

이 델리게이트는 다양하게 활용할 수 있지만 흔히 콜백 함수로써 활용됩니다. 어떤 이벤트가 발생했을 때 그 이벤트와 연관된 함수들을 등록해두고 이벤트가 발생하면 등록된 함수들이 모두 호출되는 것이죠. 델리게이트에 여러 함수들을 등록해두는 걸 델리게이트 체인이라고 합니다.

게임에서 몬스터를 예로들어 설명하자면 몬스터가 공격받을 시 처리해야 할 사항들을 델리게이트에 등록해두고 한 번에 차례로 호출하는 것이죠. 이렇게되면 처리 사항에 따른 각 개체들을 굳이 알 필요가 없어짐으로 구조가 느슨해지고 유연해집니다. 

 

'프로그래밍 > c#' 카테고리의 다른 글

C# 반복문 for와 while의 차이  (0) 2023.07.26
C#의 기본 자료형, 데이터 형식 DataTypes  (0) 2023.07.25
c#_48 일반화 Generalization <T>  (0) 2022.02.11
c#_47 ?. ?? Null 조건 연산자  (0) 2022.02.08
c#_46 삼항 연산자  (0) 2022.01.26

댓글