Deff_Dev
[C#] 콜백, delegate, event 본문
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
'면접 질문 정리 > C#' 카테고리의 다른 글
[C#] 가비지 컬렉터 (Garbage Collectior) (0) | 2024.07.08 |
---|---|
[C#] 상속과 인터페이스 (0) | 2024.07.05 |
[C#] 스택 메모리, 힙 메모리 (0) | 2024.07.04 |
[C#] 객체 지향 프로그래밍 (0) | 2024.07.02 |
[C#] 객체와 한정자 (0) | 2024.07.01 |