반응형
delegate의 일부분인 Event라는 것이 있습니다. 이벤트는 하나의 상의 이벤트 처리 메서드로 참조를 가질 수 있어 이벤트에 대해 등록된 이벤트 처리기 목록을 유지하여 이벤트를 발생시킨 클래스의 발송자 역활을 합니다. [MSDN]
A. 자 동차 설계도로부터 하나의 빨간색 스포츠카(속성) 자동차(객체, 개체)를 만들어서 시동 걸고(생성자) 전진 및 좌회전(메서드)를 하면서 가끔은 대리운전(대리자)도 부르고, 그러다가 과속(메서드)이라는 기능 수행 결과 교통사고 (이벤트)사고가 발생해서 그나마 멀쩡한 카 오디오(필드)는 중고로 팔고 폐차 (소멸자)했다. |
Program.cs |
using System; public class 이벤트 { public static void Main() { //다중메서드 호출 Hello.Hi1(); Hello.Hi2(); //대리자 호출 Say say; say = new Say(Hello.Hi1); say += new Say(Hello.Hi2); say(); //[3]이벤트와 헨들러로 호출 Button btn = new Button(); btn.Click += new Say(Hello.Hi1); btn.Click += new Say(Hello.Hi2); } } |
Button.cs |
using System; //[!]대리자 public delegate void Say(); //이벤트와 헨들러로 호출 public class Button { //[!] 이벤트 : Click public event Say Click; //[!] 이벤트 핸들러(처리기) public void OnClick() { if (Click != null) { Click(); } } } public class Hello { public static void Hi1() { Console.WriteLine("안녕하세요"); ; } public static void Hi2() { Console.WriteLine("반가워요"); } } |
출력화면
반응형
'C#' 카테고리의 다른 글
53.C# - 무명메서드(익명메서드 : Anonymous Method ) (0) | 2009.08.13 |
---|---|
52.C# - GenericMethod (제네릭 메서드) (0) | 2009.08.13 |
50.C# - Delegate 대리자 (델리게이트) (0) | 2009.08.13 |
12.C# - 알고리즘 : 병합 (MEARGE) (0) | 2009.08.12 |
11.C# - 알고리즘 : 카운터 (Count) (0) | 2009.08.12 |
Comments