using System;
//선언
public delegate void SayHandler(string msg);
public class Button
{
//이벤트 생성
public event SayHandler Click;
//이벤트 핸들러 생성
public void OnClick(string msg)
{
if (Click != null)
{
Click(msg);
}
}
}
public class Program
{
public static void Say(string msg)
{
Console.WriteLine(msg);
}
public static void Main()
{
//1.메서드 호출
//Program.Say("안녕");
Say("안녕Say");
//2.대리자를 통해서 대신 호출
SayHandler sh = new SayHandler(Say);
sh += new SayHandler(Program.Say);
sh("방가Say"); //실행
//3. 이벤트와 이벤트처리기를 통하서 등록해서 호출
Button btn = new Button();
btn.Click += new SayHandler(Say); //기본
btn.Click += Say; //축약형
btn.OnClick("Say");
//4.무명 메서드
SayHandler hi = delegate(string msg)
{
Console.WriteLine(msg);
};
hi("안녕 string msg");
hi("방가 string msg");
/////////////// 다른 방식 ///////////
Button button = new Button();
button.Click += delegate(string msg)
{
Console.WriteLine(msg);
};
button.Click += delegate(string msg)
{
Console.WriteLine(msg);
};
button.OnClick("string msg");
}
}
'.Net Project > .Net 3.5 Sp1' 카테고리의 다른 글
70장 날짜관련내장객제 (0) | 2009.08.13 |
---|---|
69장 JavaScript Event (0) | 2009.08.13 |
67장 제네릭 메서드 (0) | 2009.08.13 |
66장 이벤트(Event) (0) | 2009.08.13 |
65장 델리게이트(delegate) (0) | 2009.08.13 |