델리게이트, 이벤트
2022. 6. 1. 22:14ㆍC#/C#에 대한 다양한 공부
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _0일때_이벤트_발생
{
//1. 이벤트를 발생시키기 위한 이벤트 핸들러 델리게이트 선언
public delegate void MyEventHandler(string message);
//게시자 클래스 선언
public class Publisher
{
//2. 이벤트 선언 (참고로 이벤트 선언은 값을 전달하는 쪽에서 선언)
public event MyEventHandler MyEvent;
public void Do(int number)
{
//이벤트 게시자가 있는지 유무 체크
if (MyEvent != null)
{
if (number % 10 == 0)
{
MyEvent("Active" + number); //이벤트 발생
}
else
{
Console.WriteLine(number);
}
}
}
}
//구독자 클래스 선언
public class Subscriber
{
static void Main(string[] args)
{
Publisher p = new Publisher();
p.MyEvent += new MyEventHandler(doAction);
for (int i = 0; i < 50; i++)
{
p.Do(i);
}
}
static public void doAction(string message)
{
Console.WriteLine("message : " + message);
}
}
}
'C# > C#에 대한 다양한 공부' 카테고리의 다른 글
[async/await] (0) | 2022.07.01 |
---|---|
Delegate (0) | 2022.07.01 |
추상클래스, 인터페이스 연습용 (0) | 2022.05.24 |
델리게이트와 이벤트를 활용한 콜벡메서드 예제 (0) | 2022.05.24 |
11-15장 (0) | 2022.04.18 |