미처 완성되지 못한 알고리즘
event내부 구조 및 예제 본문
public event EventHandler Event; <- 우리가 쓰는 이벤트 선언
컴파일러 내부에서 돌아가는 이벤트 구조.
-------------------------------------------------------------------------------------
private EventHandler _Event;
public event EventHandler Event
{
add
{
lock(this) {_Event +=value;}
}
remove
{
lock(this) {_Event -=value;}
}
}
-------------------------------------------------------------------------------------
class ExEvent
{
private string name;
public ExEvent(string name) { this.name = name; }
public string NAME { get { return name; } }
public delegate void OnEvent(object sender, EventArgs arg);
public event OnEvent onEvent;
public void RunEvent()
{
if (onEvent != null)
onEvent(this, new EventArgs());
}
}
class Program
{
static void OnEvent(object sender, EventArgs arg)
{
ExEvent evt = (ExEvent)sender;
Console.WriteLine("{0} 이벤트 발생!", evt.NAME);
}
static void Main(string[] args)
{
ExEvent event1 = new ExEvent("홀수");
ExEvent event2 = new ExEvent("짝수");
event1.onEvent += OnEvent;
event2.onEvent += OnEvent;
Console.WriteLine("정수를 입력하세요.");
int num = int.Parse(Console.ReadLine());
if (num % 2 == 1)
event1.RunEvent();
else
event2.RunEvent();
}//main
}//class
'IT > c#' 카테고리의 다른 글
다중 인터페이스 상속 시 중복 메소드 처리 방법. (0) | 2017.09.19 |
---|---|
상속 시 생성자 호출 순서 (0) | 2017.09.18 |
반환형이 object형식일 때 (0) | 2017.09.11 |
c#에서 배열을 매개변수로 넘길 때 주의 점 (0) | 2017.09.11 |
#region (0) | 2017.09.08 |