[C#] Callback - 콜백은 어떻게 사용하는가?C#/C#정리2021. 8. 31. 20:37
Table of Contents
🌳 Callback
델리게이트의 진가가 발휘되는 시점은 바로 콜백 기능을 이용할 때다.
콜백이란 호출을 당한 쪽에서 다시 호출한 쪽의 메서드를 호출하는 것이다.
🌳 일반적인 콜백예제
public class CallbackExample
{
void Main()
{
Mother mother = new Mother();
Son son = new Son();
mother.GetSionToStudy(son);
}
}
//
class Mother
{
// 1번
public void GetSonToStudy(Son son)
{
son.Study(this);
}
// 3번
public void FinishStudy()
{
Debug.Log("Study done");
}
}
class Son
{
// 2번 (콜백을 위해 Mother를 전달)
public void Study(Mother mother)
{
// 나를 부른 클래스의 메소드를 다시 콜하고있음 -> 콜백
mother.FinishStudy();
}
}
피호출자(Son)이 호출자(Mother)의 메소드를 사용하기위해 Mother을 전달 받는다.
델리게이트 콜백을 사용하면 객체를 전달하지 않고 메서드만 담아 전달해 사용할 수 있다.
🌳 Delegate Callback 예제
public class CallbackExmaple
{
void Main()
{
Mother mother = new Mother();
Son son = new Son();
mother.GetSonToStudy(son);
}
}
// 델리게이트 선언
delegate void StudyDelegate();
//
class Mother
{
public void GetSonToStudy(Son son)
{
StudyDelegate del = FinishStudy;
son.Study(del);
}
public void FinishStudy()
{
Debug.Log("Study done");
}
}
//
class Son
{
public void Study(StudyDelegate del)
{
// 델리게이트 메소드
del();
}
}
반응형
'C# > C#정리' 카테고리의 다른 글
[C#] 익명메소드와 람다식 (0) | 2021.09.20 |
---|---|
[C#] Event - Delegate를 사용한 이벤트 처리 (0) | 2021.08.31 |
[C#] Delegate - 델리게이트(대리자)를 사용하는 이유 (0) | 2021.08.18 |
[C#] 확장 클래스 (0) | 2021.08.02 |
[C#] 기본 프로그램 구조 학습 (0) | 2021.08.02 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!