C#/C#정리
[C#] Callback - 콜백은 어떻게 사용하는가?
반나무
2021. 8. 31. 20:37
🌳 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();
}
}
반응형