프로그래밍 C#언어

대리자(delegate)

게임첫걸음 2024. 9. 10. 15:27

 C#언어의 컬렉션(Collection)과 C언어의 함수 포인터(Function Pointer)에서 계속 언급한 대리자(delegate)에 대해 아주 간단히 그림과 짧은 코드로 작성해보겠습니다.

 대리자는 현실로 치면 중개업자 역할이라고 생각합니다. 이전 글에서는 요식업 중 배달의 민족으로 예시를 드렸는데 이번엔 스폰지밥으로 시각자료를 만들어보았습니다.

대리자(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

 

'프로그래밍 C#언어' 카테고리의 다른 글

컬렉션(Collections)  (0) 2024.09.09
템플릿(Template)  (1) 2024.09.09
상속3  (0) 2024.09.09
상속2  (5) 2024.09.05
상속 (Inheritance)  (0) 2024.08.30