CS

delegate, event, action, func 간의 차이

llIlIIllII 2023. 11. 16. 09:49

delegate는 메서드의 참조를 저장하고 호출할 수 있는 형식입니다. 함수 포인터와 유사한 역할을 하며, 다른 메서드를 대신 호출할 수 있습니다.

 

event는 델리게이트의 특별한 형태로, 특정 델리게이트 형식에 연결된 메서드들의 목록을 관리하는 데 사용됩니다. 주로 Observer 디자인 패턴을 구현하는 데 사용되며, 이벤트가 발생하면 다른 클래스에서 그 이벤트를 구독하고 처리할 수 있습니다.

 

Action은 C#에서 제공하는 내장 델리게이트로, 델리게이트 선언과 이벤트 선언을 합쳐놓은 것이고, Func은 반환값이 있는 Action입니다.