이벤트
객체지향 을 처음 관심을 둘때
내가 만든 객체도 어떤 이벤트에 대한 동작을 해야 하지 않는가? 라는 의문이 생기면서
방법을 찾다가 한참만에 찾았었음.
Vs2003으로 되있는걸 보면... 웹할때인듯 한데 C#시작하고 1년이 넘어서인가보다.
이벤트란? 객체에 어떤행동이나 상태변화등에 특정 행동을 정의 함으로써
그 행동이나 상태변화에 대응하기 쉽게함.
곧 사람이 외부에서 때렸을때 악! 소리를 낸다라든가?
밥을 먹다보니 위가 가득 차서 배부르다는 느낌을 받는다든가?
EventObject evtObj = new EventObject();
...
evtObj.intState_EventHandle +=new intState(evtObj_intState_EventHandle);
...
private void evtObj_intState_EventHandle() // 이벤트 발생시 두번째 호출
{
MessageBox.Show("값을 바꿨네!");
}
evtObj.EventTarget = 10; // 이벤트 발생 시점이 됨.
delegate void intState();
class EventObject
{
int eventTarget = 0;
public EventObject()
{
this.intState_EventHandle +=new intState(StateChange);
}
public int EventTarget
{
get { return this.eventTarget;}
set {
int i = this.eventTarget;
this.eventTarget = value;
if( i != this.eventTarget && intState_EventHandle != null)
intState_EventHandle();
}
}
public event intState intState_EventHandle;
public void StateChange()
{
MessageBox.Show("누가 바꾸래!"); // 이벤트 발생시 처음 호출
}
}
이벤트가 발생시 이벤트 처리자로 추가된 순서대로 호출이 됨.
// 아참 떠오르는건 엄준일님 이벤트 강좌를 보고 이걸 했던것 같음.
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
Ms-Sql을 띠우자! (0) | 2009.05.08 |
---|---|
데이타테이블 컬럼위치 바꾸기 (0) | 2009.05.08 |
Enum 과 Enum 비트 마스크 (0) | 2009.05.08 |
Xml 직렬화... (0) | 2009.05.08 |
정규식] 똑같은 글자가 몇개? (2) | 2009.05.08 |