실전 event 목차
 
 
이벤트란 무엇인가?
이벤트는 간단히 말하자면 특정 사건이 발생했음을 알리는데 사용됩니다. Page_Load 되었을때 Page_Load 이벤트가 발생할 것이고, 버튼을 클릭했을 경우 _Click 이벤트가 발생할 것입니다. 예를 들어, 내 여자친구의 생일날이 오면 생일 이벤트가 발생할 것이고, 12월 25일 크리스마스가 오면 크리스마스 이벤트가 발생할 것입니다.
 
점차적으로 프로그램의 복잡성이 증가함에 따라 이벤트를 굉장히 유용하게 사용될 수 있습니다. 대리자를 통해 메서드의 형식을 캡슐화할 수 있기 때문에, 선언부와 구현부를 따로 분리할 수 있기 때문입니다. 단지, 우리는 이벤트의 발생을 알리기만 하면 될 뿐이니까요.
 
 
이벤트 만들기
이벤트는 대리자(Delegate) 와 떨어질 수 없는 관계입니다. 바로 이벤트는 이 대리자를 통해 메서드의 구현을 실행시키게 되는 것이기 때문입니다. 하지만 이곳에서는 대리자에 대한 설명은 하지 않을 것입니다^^;
 
이벤트는 선언을 하는 것만으로 하나의 이벤트가 완성됩니다.
 
event EventHandler Event;
 
굉장히 간단하지 않습니까? 이벤트의 선언은 위와 같이
 
event 키워드 + 대리자 + 이벤트 이름
 
이렇게 3가지만 알고 있으면 이벤트가 완성됩니다.
 
참고 : EventHandler 대리자는 다음과 같이 정의 되었습니다.
public delegate void EventHandler(object sender, EventArgs e);
 
 
실전 기초 예제
그럼 어디서나 볼 수 있는 간단한 예제를 한번 만들어 보겠습니다.
 
우선 폼에 버튼을 하나 올려 놓았습니다.

[그림1] 웹폼에 버튼 컨트롤을 올림.
 
아래 소스는 Delegate 와 event 를 선언하고 이벤트를 발생하는 모든 과정을 구현한 것입니다. 별거 아니죠??
 
public partial class _Default : System.Web.UI.Page
{
        delegate void MyEventHandler();
        event MyEventHandler MyEvent;
 
        void OnMyEvent()
        {
               if( MyEvent != null )
                       MyEvent();
        }
 
        protected void Page_Load(object sender, EventArgs e)
        {
               this.MyEvent += new MyEventHandler(_Default_MyEvent);
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
               OnMyEvent();
        }
 
        void _Default_MyEvent()
        {
               Response.Write("MyEvent 발생하였습니다");
        }
}
 
실행결과는 더욱 더 별거 아닙니다.
 
[그림2] 실행결과
 
만약 위 소스가 이해가 안되신다면, 절대로 다음 회차를 보지 마시고, 다음의 사이트를 통해 대리자와 이벤트에 대한 기초 문법을 더 익히시기 바랍니다.
 
소설 같은 자바
http://www.jabook.org/
 
훈스 닷넷
http://www.hoons.kr/Lectureview.aspx?key=Lecture&LECCATE_IDX=7&ref=1&lecture_idx=208
http://www.hoons.kr/Lectureview.aspx?key=Lecture&LECCATE_IDX=7&ref=1&lecture_idx=209
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 땡초 POWERUMC
TAG ,

댓글을 달아 주세요