실전 event [1] - 이벤트 시작하기
.NET/C# 2007. 12. 16. 01:11 |이벤트란 무엇인가?
이벤트는 간단히 말하자면 특정 사건이 발생했음을 알리는데 사용됩니다. Page_Load 되었을때 Page_Load 이벤트가 발생할 것이고, 버튼을 클릭했을 경우 _Click 이벤트가 발생할 것입니다. 예를 들어, 내 여자친구의 생일날이 오면 생일 이벤트가 발생할 것이고, 12월 25일 크리스마스가 오면 크리스마스 이벤트가 발생할 것입니다.
점차적으로 프로그램의 복잡성이 증가함에 따라 이벤트를 굉장히 유용하게 사용될 수 있습니다. 대리자를 통해 메서드의 형식을 캡슐화할 수 있기 때문에, 선언부와 구현부를 따로 분리할 수 있기 때문입니다. 단지, 우리는 이벤트의 발생을 알리기만 하면 될 뿐이니까요.
이벤트 만들기
이벤트는 대리자(Delegate) 와 떨어질 수 없는 관계입니다. 바로 이벤트는 이 대리자를 통해 메서드의 구현을 실행시키게 되는 것이기 때문입니다. 하지만 이곳에서는 대리자에 대한 설명은 하지 않을 것입니다^^;
이벤트는 선언을 하는 것만으로 하나의 이벤트가 완성됩니다.
event EventHandler Event; |
굉장히 간단하지 않습니까? 이벤트의 선언은 위와 같이
event 키워드 + 대리자 + 이벤트 이름
이렇게 3가지만 알고 있으면 이벤트가 완성됩니다.
참고 : EventHandler 대리자는 다음과 같이 정의 되었습니다.
public delegate void EventHandler(object sender, EventArgs e); |
실전 기초 예제
그럼 어디서나 볼 수 있는 간단한 예제를 한번 만들어 보겠습니다.
우선 폼에 버튼을 하나 올려 놓았습니다.
아래 소스는 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 가발생하였습니다");
}
} |
실행결과는 더욱 더 별거 아닙니다.
만약 위 소스가 이해가 안되신다면, 절대로 다음 회차를 보지 마시고, 다음의 사이트를 통해 대리자와 이벤트에 대한 기초 문법을 더 익히시기 바랍니다.
소설 같은 자바
훈스 닷넷
'.NET > C#' 카테고리의 다른 글
실전 event [3] - 취소 가능한 이벤트란 (0) | 2007.12.17 |
---|---|
실전 event [2] - 유저컨트롤에서 페이지로 이벤트로 값 전달 (0) | 2007.12.16 |
실전 event [1] - 이벤트 시작하기 (0) | 2007.12.16 |
[C# 3.0] LINQ to Sql 의 쿼리를 로그로 남겨보자 (0) | 2007.12.04 |
LINQ QUIZ (0) | 2007.11.05 |
LINQ To Sql 의 올바른 사용 (0) | 2007.09.17 |
댓글을 달아 주세요