C#

C#문법-12 : 이벤트 event

알통몬_ 2019. 4. 24. 15:10
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 

지난 포스팅에서는 클래스에 대해 공부했씁니다.

2019/04/24 - [C#] - C#문법-11 : Nullable Type, 메소드 파라미터

이번 포스팅에서는 이벤트 event 에 대해 공부합니다.

참고로 저처럼 vscode를 사용하시면 WindowForms을

지원하지 않기 때문에 테스트 코드를 작성해볼 수가 있긴

하지만 빨간 줄만 뜹니다 ㅎㅎ


무튼 이벤트에 대해 공부합시다.


이벤트 :

클래스 내에서 특정한 Event가 일어났을 때 외부의 이벤트 구독자

들에게 알려주는 기능을 합니다.

event 키워드를 사용하고 클래스 내에서 필드처럼 정의 합니다.


이벤트 구독자에게 이벤트 발생 시 

어떤 명령을 실행할 지 지정해줘야 하는데,

이벤트 핸들러라고 하며 이벤트를 주기 위해서는+= 를 

제거하기 위해서는 -= 를 사용합니다.


예제 코드

class EvtClass {
public string msg;

public event EventHandler touch;

public void touchDown() {
if(touch != null) {
touch(this, EventArgs.Empty);
}
}

public void run() {
EvtClass ec = new EvtClass();
ec.touch += new EventHandler(btn_touchDown);
}

void btn_touchDown(object sender, EventArgs evtArgs) {
MessageBox.show("Btn touch down!");
}
}

* 이벤트는 외부에서 접근 가능하도록 public 이어야 함.


add 와 remove :

프로퍼티 선언시 get, set을 사용하듯 이벤트에서는 add, remove를

사용합니다.

public event EventHandler touch {
add {
_touch += value;
// _touch = value; // 이벤트 추가가 아닌 대체
}
remove {
_touch -= value;
}
}

public EventHandler _touch;



저도 이벤트에 대해 자세히 모르기 때문에 추후에 더 공부하여

내용 추가하도록 하겠습니다.


반응형