1-1. 위 코드의 출력 결과는 무엇인가요? 그 이유는 무엇인가요?
① MathOperation 델리게이트에 Add 메서드를 할당
② MathOperation(3, 4)를 호출하면 Add(3, 4)가 호출되어 3 + 4 = 7이 반환되고, 출력
③ 이후 MathOperation 델리게이트에 Multiply 메서드를 할당
④ MathOperation(7, 5)를 호출하면 Multiply(7, 5)가 호출되어 7 * 5 = 35가 반환되고, 출력
1-2. 위 코드의 Main 함수를 아래처럼 바꿔도 같은 방식으로 동작할까요? 그 이유는 무엇인가요?
위 코드의 Main 함수를 아래와 같이 바꿔도 같은 방식으로 동작한다.
그 이유는 Func<int, int, int>는 MyCallback 델리게이트와 동일한 서명을 갖기 때문이다.
즉, 두 개의 int 매개변수를 받아서 int를 반환하는 델리게이트 타입이다.
MyCallback는 사용자 정의 델리게이트이며,
두 개의 int를 매개변수로 받아서 int를 반환하는 메서드를 참조할 수 있다.
Func<int, int,="" int="">는 System 네임스페이스에 정의된 제네릭 델리게이트이며,</int,>
마지막 int가 반환 타입이고, 앞의 두 int가 매개변수 타입이다.
1-3. 델리게이트를 사용하여 메서드를 매개변수로 전달하는 장점은 무엇인가요?
유연한 메서드 호출/ 콜백 메서드 구현/ 이벤트 처리/ 전략 패턴/ 코드 재사용성 / 코드 가독성 향상
2-1. 콜백이란 무엇인가요?
콜백이란 어떤 함수(메서드)가 다른 함수에 인자로 전달되어 호출되는 프로그래밍 기법이다.
콜백 함수는 보통 특정 이벤트나 작업이 완료된 후 실행된다.
콜백을 사용하면 코드의 흐름을 제어하고, 비동기 작업이나 이벤트 기반 프로그래밍에서 중요한 역할을 한다.
2-2. 델리게이트(delegate; 대리자)란 무엇인가요?
델리게이트(delegate)는 C#에서 형식 안전한 메서드 참조를 나타내는 개념이다.
델리게이트는 메서드를 변수에 할당하거나, 인자로 전달하거나, 반환값으로 사용할 수 있게 한다.
델리게이트를 사용하면 메서드를 유연하게 호출하고, 콜백 메서드나 이벤트 핸들러를 구현할 수 있다.
2-3. C#의 event란 무엇인가요?
이벤트(event)는 객체가 특정 작업을 수행하거나 상태가 변경될 때 다른 객체에 이를 알리는 메커니즘이다.
이벤트는 델리게이트를 기반으로 하며, 객체 간의 느슨한 결합을 유지하면서 상호작용을 처리할 수 있다.
2-4. Unity에서 사용하는 델리게이트 혹은 이벤트에는 어떤 것이 있나요?
UnityEvent/ Action/ Func/ Custom Event System
'C# > Knowledge' 카테고리의 다른 글
상속과 인터페이스 (0) | 2024.07.09 |
---|---|
스택 메모리 vs 힙 메모리 (0) | 2024.07.09 |
객체지향 프로그래밍 (0) | 2024.07.04 |
객체와 한정자 (0) | 2024.07.01 |
파라미터 <-> 메서드 <-> 리턴 관계도 (0) | 2024.05.21 |