프로그래밍 C#언어
대리자(delegate)
게임첫걸음
2024. 9. 10. 15:27
C#언어의 컬렉션(Collection)과 C언어의 함수 포인터(Function Pointer)에서 계속 언급한 대리자(delegate)에 대해 아주 간단히 그림과 짧은 코드로 작성해보겠습니다.
대리자는 현실로 치면 중개업자 역할이라고 생각합니다. 이전 글에서는 요식업 중 배달의 민족으로 예시를 드렸는데 이번엔 스폰지밥으로 시각자료를 만들어보았습니다.
이제 간단히 알아볼 코드를 살펴보겠습니다.
class Program
{
// 대리자
public delegate void MethodDelegate();
static void PrintHello()
{
Console.WriteLine("Hello");
}
static void PrintWorld()
{
Console.WriteLine("World");
}
static void Main()
{
MethodDelegate method = PrintHello;
method();
method = PrintWorld;
method();
}
}
위의 코드에서 public delegate void MethodDelegate(); 에서 delegate를 반환형 앞에 붙여 MethodDelegate()를 대리자로 정의해줍니다. PrintHello(), PrintWorld() 메서드 2개를 선언합니다. 이후 Main() 메서드에서 대리자를 사용합니다.
- MethodDelegate(대리자)의 method는 PrintHello 메서드를 할당해줍니다.
- method();로 PrintHello() 메서드를 호출합니다.
- method() 메서드에 PrintWorld 메서드를 할당해줍니다.
- method();로 PrintWorld() 메서드를 호출합니다.
출력값: Hello \n World
끝