반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
지난 포스팅에서는 클래스에 대해 공부했씁니다.
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;
저도 이벤트에 대해 자세히 모르기 때문에 추후에 더 공부하여
내용 추가하도록 하겠습니다.
반응형
'C#' 카테고리의 다른 글
C#문법-14 : 접근 제한자 public, interal, protected, private (1) | 2019.04.25 |
---|---|
C#문법-13 : 전처리기와 Indexer 인덱서 (0) | 2019.04.24 |
C#문법-11 : Nullable Type, 메소드 파라미터 (0) | 2019.04.24 |
C#문법-10 : 클래스 - 메소 드, 프로퍼티, 필드, 이벤트 (0) | 2019.04.24 |
C#문법-9 : 구조체 (0) | 2019.04.23 |