C# 이벤트
이벤트는 클래스내에 특정한 일(Event)가 일어났음을 외부의 이벤트 가입자(subscriber)들에게 알려주는 기능을 한다.
C#에서는 이벤트는 event라는 키워드를 사용하여 표시하며, 클래스 내에서 일종의 필드처럼 정의된다.
이벤트에 가입하는 외부 가입자 측에서 이벤트가 발생하는 어떤 명령들을 실행할 지를 지정해 주는데, 이를 이벤트 핸들러라 한다. 이벤트에 가입하기 위해서는 += 연산자를 사용하여 이벤트핸들러를 이벤트에 추가한다. 반대로 이벤트핸들러를 삭제하기 위해서는 -= 연산자를 사용한다. 하나의 이벤트에는 여러 개의 이벤트핸들러들을 추가할 수 있으며, 이벤트가 발생되면 추가된 이벤트핸들러들을 모두 차례로 호출한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class MyButton { public string Text; // 이벤트 정의 public event EventHandler Click; public void MouseButtonDown() { if (this.Click != null) { // 이벤트핸들러들을 호출 Click(this, EventArgs.Empty); } } } // 이벤트 사용 public void Run() { MyButton btn = new MyButton(); // Click 이벤트에 대한 이벤트핸들러로 // btn_Click 이라는 메서드를 지정함 btn.Click += new EventHandler(btn_Click); btn.Text = "Run"; //.... } void btn_Click(object sender, EventArgs e) { MessageBox.Show("Button 클릭"); } | cs |
출처 : http://www.csharpstudy.com/CSharp/CSharp-event.aspx
반응형
'프로그래밍 > C#' 카테고리의 다른 글
C# Anonymous Method : 무명메서드, 일회용으로 메서드를 사용 할 때 (0) | 2017.06.15 |
---|---|
C# Delegate (0) | 2017.06.14 |
C# 네임스페이스 (0) | 2017.06.14 |
c# Exception 예외처리 (0) | 2017.06.14 |
[c#] 한국 원화 \ 표시하기. (1) | 2017.01.09 |
댓글