C# 기초 강의실

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

델리게이트
  C#에서는 『델리게이트』라는 개념을 사용해서 메서드의 엔트리 포인트를 호출한다. 델리게이트를 좀 더 쉬운 말로 설명하면 『메서드의 엔트리 포인트(실행 개시 위치)를 설정해서 메서드의 호출을 넘기는 것』, 즉 메서드의 호출을 델리게이트에 넘기는 것이다. C/C++을 학습한 경험이 있는 분은, 델리게이트란 함수 포인터를 선언하기 위한 것이라고 생각하면 이해하기가 쉬울 것이다.

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 10. 형(Type)과 내장 클래스 - 레드플러스 2003-03-31 7112
현재글 9. 이벤트(event)와 델리게이트(delegate) - 레드플러스 2003-03-31 13701
  9.1. 예제. 다중 메서드 호출 : 2개의 메서드 따로 따로 호출 - 레드플러스 2003-05-26 6722
  9.2. 예제. 델리게이트(delegate)를 활용한 여러개의 메서드 한번에 호출 - 레드플러스 2003-05-26 8336
  9.3. 예제. 매개변수가있는대리자.cs - 레드플러스 2003-05-26 6464
  9.4. 예제. 델리게이트연산.cs - 레드플러스 2004-11-07 6286
  이벤트핸들러생성.cs - 레드플러스 2005-06-21 8531
  이벤트핸들러생성.htm - 레드플러스 2005-06-21 5967
  짝수의합.htm - 레드플러스 2005-06-22 5851
  이벤트(event)와 델리게이트(delegate)를 사용한 짝수의 합 - 레드플러스 2005-06-22 7735
  C# 기초문법 복습 : 처음부터 이벤트까지 : 확인또는취소.htm - 레드플러스 2005-06-23 6856
  9.12. C# 기초문법 복습 : 처음부터 이벤트까지 : 확인또는취소.cs - 레드플러스 2005-06-23 6250
  9.5. 예제. 스태틱과인스턴스.cs - 레드플러스 2005-07-18 5896
  9.6. 예제. 이벤트핸들러생성.cs - 레드플러스 2005-07-18 7478
  이벤트를사용한짝수의합.htm - 레드플러스 2005-07-19 5997
  이벤트를사용한짝수의합.cs - 레드플러스 2005-07-19 5931
  이벤트 확장 : 매개변수도 있고 반환값도 있는 메서드 호출 - 레드플러스 2006-07-18 5893
  9.10. 대리자.cs - 레드플러스 2007-02-13 5440
  9.11. 이벤트.cs - 레드플러스 2007-02-13 5316
다음글 8. 메서드(method)와 속성(property) - 레드플러스 2003-03-31 8456
 
손님 사용자 Anonymous (손님)
로그인 Home