다른클래스 또는 다른위치의 이벤트를 받아오고 싶을때
다음 코드 예제에서는 이벤트 데이터와 이 이벤트 데이터를 사용하는 일반 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 |