제목 : 이벤트(event)와 델리게이트(delegate)를 사용한 짝수의 합
글번호:
|
|
276
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2005/06/22 오후 3:45:00
|
조회수:
|
|
7736
|
using System;
using 짝수의합.Div;//Input 클래스에 직접 접근하도록...
namespace 짝수의합{
public class JavaScript{
public static void Calc(){
int intSum = 0;
for(int i = 1;i <= 100;i++){
if(i % 2 == 0){
intSum += i;
}
}
Console.WriteLine(
"1~100까지 짝수 합 : {0}" , intSum);
}
}
namespace Div{
public delegate void EventHandler();//대리자
public class Input{
private static string _Type;
public static string Type{ //Type속성
get{return _Type;}
set{_Type = value;}
}
private static string _Value;
public static string Value{ //Value속성
get{return _Value;}
set{_Value = value;}
}
//이벤트 : 대리자 타입이 필요
public static event EventHandler Click;
//OnClic 이벤트 발생 메서드 생성
public static void OnClick(){
if(Click != null){
Click();//이벤트 샐행
}
}
}
}
public class Html{
public static void Main(string[] args){
//[1] 델리게이트와 이벤트를 전혀 사용하지 않을 경우
짝수의합.JavaScript.Calc();
짝수의합.JavaScript.Calc();
//[2] 델리게이트를 사용해서 한번에 2번 호출
짝수의합.Div.EventHandler e;
e = new 짝수의합.Div.EventHandler(
짝수의합.JavaScript.Calc);
e += new 짝수의합.Div.EventHandler(
짝수의합.JavaScript.Calc);
e();
//[3] 이벤트에 등록 후 이벤트 처리기 사용
Input.Click +=
new 짝수의합.Div.EventHandler(
짝수의합.JavaScript.Calc);
Input.Click +=
new 짝수의합.Div.EventHandler(
짝수의합.JavaScript.Calc);
Input.OnClick();
}
}
}