면접 질문 정리/C#
[C#] 콜백, delegate, event
Deff_a
2024. 7. 3. 12:29
1. 콜백이란 무엇인가요? 콜백을 사용해본 경험이 있을까요?
- 콜백 : 피호출자가 호출자의 메소드를 호출하는 것
- 콜백은 특정 이벤트나 조건이 발생했을 때 호출되는 함수로, 주로 비동기 프로그래밍에서 사용된다. (작업 완료 시점을 명확하게 처리 가능)

위 처럼 보통 매개 변수에 콜백 함수를 넣어서 사용한다.
사용
- MonoBehaviour 이벤트 함수 (Awake, Start, Update …)
- UI 이벤트 콜백
- Button.OnClick
- Slider.OnValueChanged
- 물리 처리 관련 콜백
- OnCollisionEnter/Exit/Stay
- OnTriggerEnter/Exit/Stay
2. 델리게이트(delegate; 대리자)란 무엇인가요?
- 함수에 대한 참조를 저장하고 호출할 수 있는 객체
- 하나의 델리게이트에 반환 타입과 매개변수 타입이 같은 메소드를 여러 개 구독하여 순차적으로 실행할 수 있다.
사용
- Action : 반환 값이 없는 메소드를 참조
- Func : 반환 값이 있는 메소드를 참조
3. C#의 event란 무엇인가요?
- 특수한 제약조건이 추가된 델리게이트로, 클래스 내/외부에서 메소드 구독, 해제만 가능하고 이벤트 실행은 이벤트가 선언된 해당 클래스 안에서만 실행 시킬 수 있다.
사용
- Animation Event
- Unity Event
- InputSystem
3. 콜백, delegate, event | Notion
확인 문제
cuboid-break-657.notion.site