본문 바로가기

.NET

Delegate

Delegate 란?


delegate void MyDelegate(string s); // delegate할 함수들과 return type, argument
     // 가 동일해야 한다.
class MyClass {
    public static void Hello(string s)  {  }
    public static void Goodbye(string s)  {  }

    public static void Main() {
        MyDelegate a;
        // Create the delegate object a that references
        // the method Hello:
        a = new MyDelegate(Hello);
 a(); // Hello() 함수 호출
 a += new MyDelegate(Goodbye);
 a(); // Hello(), Goodbye() 함수 둘다 호출. MultiDelegate
}


다음과 같은 경우에는 대리자가 유용합니다.

단일 메서드가 호출되는 경우
클래스에서 메서드 사양을 다중 구현하려는 경우
사양 구현에 정적 메서드 사용이 바람직한 경우
이벤트형 디자인 패턴이 바람직한 경우
호출자가 메서드가 정의된 개체를 알거나 구할 필요가 없는 경우
구현 공급자가 사양 구현을 선택된 일부 구성 요소에만 "배포"하려는 경우
쉽게 작성하려는 경우

'.NET' 카테고리의 다른 글

css 화면 클릭 => 새로운 레이어 띄우기  (2) 2007.08.18
1~100까지 소수 구하기  (0) 2007.08.17
오버로딩과 오버라이딩  (0) 2007.08.17
3X3 마방진  (1) 2007.08.14
윈폼 제작  (0) 2007.08.14

태그