제목 : 9. 이벤트(event)와 델리게이트(delegate)
글번호:
|
|
19
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2003/03/31 오후 4:42:00
|
조회수:
|
|
13711
|
이벤트란?
Windows에서는 여러 가지 창이나 대화상자를 이용해서 데이터를 표시하거나 각종 설정을 하게 된다. 창이나 대화상자에는 사용자가 지시를 내리는 명령 버튼, 텍스트를 편집하는 편집 박스, 데이터 알람을 표시하는 리스트 박스 등 다양한 컨트롤이 배치되어 있어 각종 입출력을 지원한다.
마우스 버튼을 클릭하거나 마우스 포인터로 무엇인가를 선택하면, 컨트롤은 어떤 액션이 행해졌는가를 프로그램에 전달한다. 이러한 액션을 이벤트(event)라고 부른다.
Windows 프로그램에서는 이 이벤트를 제어하는 것이 매우 중요하다. 이를 위해 프로그램에는 이벤트를 처리하는 절차(메서드)를 마련하여 이벤트가 발생했을 때 거기에 해당하는 절차를 실행한다. 이벤트를 처리하는 절차를 우리는 이벤트 핸들러(event handler)라고 부른다.
한편, C#에서는 이벤트를 처리하기 위해 델리케이트(delegate)라는 기능을 이용한다. 그리고 이 기능을 구현하기 위해 delegate 키워드와 event 키워드를 사용한다. 이벤트를 다루는 방법은 C# 프로그래밍에서도 가장 난이도가 높은 기술에 속한다. 지금부터 예제를 살펴보면서 하나씩 설명하도록 하겠다.
델리게이트
C#에서는 『델리게이트』라는 개념을 사용해서 메서드의 엔트리 포인트를 호출한다. 델리게이트를 좀 더 쉬운 말로 설명하면 『메서드의 엔트리 포인트(실행 개시 위치)를 설정해서 메서드의 호출을 넘기는 것』, 즉 메서드의 호출을 델리게이트에 넘기는 것이다. C/C++을 학습한 경험이 있는 분은, 델리게이트란 함수 포인터를 선언하기 위한 것이라고 생각하면 이해하기가 쉬울 것이다.