[C#] C# 문법 이벤트(Event) 선언 및 사용 방법




이번 포스팅에서는 C# 문법 중 하나인 이벤트 선언하는 방법에 대해서 알아보도록 하겠습니다.


실무에서 프로젝트를 많이 하시다 보면 이벤트를 사용을 안 할래야 안 할 수가 없는 문법인데요.


실제 이러한 이벤트를 C# 코드에서 어떻게 선언하고 사용하는지 예제를 통하여 쉽게 알아보도록 하겠습니다.

 

C# 콘솔프로그램으로 빈 프로젝트를 생성하여 주시고 아래와 같이 코드를 작성해 주시기 바랍니다.

 

이벤트 선언 방법 및 사용법은 제가 주석을 통하여 선언 순서를 설명하였으니 코드를 보시고 쉽게 이해하여 응용하실 수 있을 거라고 생각합니다.

 

이벤트 선언 순서


1.   이벤트를 발생시키기 위한 이벤트 핸들러 델리게이트 선언

2.   게시자 클래스 선언

3.   이벤트 선언 (참고로 이벤트 선언은 값을 전달하는 쪽에서 선언)

4.   이벤트 게시자가 있는지 유무 체크

5.   구독자 클래스 선언

6.   이벤트 사용


 

참고) 아래 예제는 현재 10으로 나눠서 나머지가 0일 때 이벤트가 발생되도록 구현한 소스코드 입니다.


Program.cs


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

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);

        }

    }

}

 

Colored by Color Scripter

cs

 

실행 결과



위와 같이 0, 10, 20, 30, 40 일 때, Active+Number 로 이벤트가 발생되는 것을 확인하실 수 있습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY