다른클래스 또는 다른위치의 이벤트를 받아오고 싶을때
다음 코드 예제에서는 이벤트 데이터와 이 이벤트 데이터를 사용하는 일반 EventHandler<(Of <(TEventArgs>)>) 대리자를 선언하며, 이벤트가 발생하는 방법을 보여 줍니다.
// This example demonstrates the EventHandler<T> delegate. using System; using System.Collections.Generic; //--------------------------------------------------------- public class MyEventArgs : EventArgs { private string msg; public MyEventArgs( string messageData ) { msg = messageData; } public string Message { get { return msg; } set { msg = value; } } } //--------------------------------------------------------- public class HasEvent { // Declare an event of delegate type EventHandler of // MyEventArgs. public event EventHandler<MyEventArgs> SampleEvent; public void DemoEvent(string val) { // Copy to a temporary variable to be thread-safe. EventHandler<MyEventArgs> temp = SampleEvent; if (temp != null) temp(this, new MyEventArgs(val)); } } //--------------------------------------------------------- public class Sample { public static void Main() { HasEvent he = new HasEvent(); he.SampleEvent += new EventHandler<MyEventArgs>(SampleEventHandler); he.DemoEvent("Hey there, Bruce!"); he.DemoEvent("How are you today?"); he.DemoEvent("I'm pretty good."); he.DemoEvent("Thanks for asking!"); } private static void SampleEventHandler(object src, MyEventArgs mea) { Console.WriteLine(mea.Message); } } //--------------------------------------------------------- /* This example produces the following results: Hey there, Bruce! How are you today? I'm pretty good. Thanks for asking! */
'C#.NET' 카테고리의 다른 글
[AssemblyName] 파일이 어셈블리인지 확인 / 외부어셈블리 정보 확인 (0) | 2010.05.20 |
---|---|
[Microsoft Translator] Bing API를 이용한 초간단 번역기 만들기 (2) | 2010.05.13 |
[BindingList 추가/삭제/수정 ] Update Insert Delete 한꺼번에 처리하기 (0) | 2010.04.08 |
엑셀출력시 0 사라짐 (0) | 2010.04.08 |
enum 이름 가져오기 와 리소스(Resources)사용법 (0) | 2010.04.02 |
[C#]사용자 아이피 알아오기 (0) | 2010.03.17 |
[MSDN][BindingList] 데이터 바인드 개선 (0) | 2010.03.12 |
[Binding] 컨트롤 바인딩 할떄 포멧변경 (0) | 2010.03.11 |
Partial 클래스 (0) | 2010.03.10 |
errorProvider을 이용한 에러체크하기 (0) | 2010.03.09 |