<구현>
1.대리자선언(클래스 안 또는 밖)
2.클래스 내에 선언한 대리자의 인스턴스를 event한정자로 수식해서 선언함
3.이벤트 핸들러 작성
4.클래스의 인스턴스 생성하고 이벤트 핸들러를 등록
5. 이벤트가 발생하면 이벤트 헨들러가 호출됨
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp12
{
class Program
{
delegate void EventHandler(string message);//대리자선언
class MyNotifier
{
public event EventHandler SomethingHappend;//클래스 내에 선언한 대리자의 인스턴스를 event한정자로 수식해서 선언함
public void DoSomething(int number)
{
int temp = number % 10;
if ((temp != 0 && temp % 3 == 0))
SomethingHappend(String.Format("{0}:짝", number));
}
}
static public void Myhandler(string message)//이벤트 핸들러 작성
{
Console.WriteLine(message);
}
static public void Myhandler2(string message)
{
Console.WriteLine("MyHandler2");
}
static void Main(string[] args)
{
MyNotifier notifier = new MyNotifier();클래스의 인스턴스 생성
notifier.SomethingHappend += new EventHandler(Myhandler);//이벤트 핸들러를 등록
notifier.SomethingHappend += new EventHandler(Myhandler2);//이벤트 핸들러를 등록
for (int i = 1; i < 30; i++)
{
notifier.DoSomething(i); //이벤트 발생시 이벤트 핸들러 호출
}
}
}
}
'코딩연습 > C#' 카테고리의 다른 글
| [C#]LINQ연습문제(레코드조회) (0) | 2020.06.12 |
|---|---|
| [C#]LINQ (0) | 2020.06.12 |
| [C#]대리자 체인 (0) | 2020.06.12 |
| [C#]대리자(delegate) (0) | 2020.06.12 |
| [C#]강제로 예외던지기(throw) (0) | 2020.06.12 |