퇴근5분전

객체지향 을 처음 관심을 둘때
내가 만든 객체도 어떤 이벤트에 대한 동작을 해야 하지 않는가? 라는 의문이 생기면서
방법을 찾다가 한참만에 찾았었음.

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