C#에서 event나 delegate를 구독할때 처리하는 방법은
총 3가지 이다.
mybutton이 있었을때 이버튼의 click이벤트를 바인딩하려 한다.
1. 람다식 (인라인으로 처리)
mybutton.click += (_, _) => OtherMethod()
이는 람다식으로 표현하는 방법인데 원래 파라미터 object, eventargs의
내용을 무시하고 내부처리를 이어하기 위함 (컴파일러가 추론할수 있음)
2. 델리게이트처리 (인라인)
mybutton.click += delegate (object sender, EventArgs e) { ... }
델리게이트를 선언하면서 호출형태를 명시하고 { ... } 안에 내용을 기술
파라미터의 형태를 컴파일러가 추론할수 없음으로 데이터형을 기술해야함
3. 별도 함수 지정 (인라인 아님)
public void MyClick(object sender, EventArgs e) { ... }
---
mybutton.click += MyClick;
---
별도의 함수에서 처리하는 방법임
※ 파라미터를 처리할때 EventArgs 가 아닌 다른 Args를 원하는 경우 해당 클래스로
바인딩 해줘야함 대리자의 시그니처가 정확한지 판단하기 때문임. ※
댓글 없음:
댓글 쓰기