콘텐츠로 건너뛰기
Home » 이벤트(Event)

이벤트(Event)

  • by
이벤트(Event)

이벤트

델리게이트 타입을 선언하면 델리게이트 변수도 생성할수 있지만,

이벤트 변수도 생성할수 있습니다. 이벤트 변수는 간단히 event 한정자만 붙여주면 됩니다.

// 델리게이트 타입 선언
delegate void MyDelegate(int a);

// 델리게이트 변수 선언
MyDelegate A;

// 이벤트 변수 선언
event MyDelegate B;

이벤트변수는 델리게이트 변수와 마찬가지로 메소드를 참조하는데, 단지 성격이 약간 다르다.

델리게이트 변수는 자신이 속한 클래스 외부에서도 호출이 가능하지만, 이벤트 변수는 외부에서 호출이 불가능하다.

오직 변수가 속한 클래스 내부에서만 사용하도록 제한된 것이다.

잘은 모르겠지만 보안적인 이유에서 이런 구분이 필요한것 같다.

다음 예제를 작성해 보자.

namespace event_Test {
    delegate void MyDelegate(int a);
    clsass EventManager {
        public event MyDelegate eventCall;
        public void NumberCheck(int num) {
            if (num % 2 == 0) {
                eventCall(num);
            }
        }
    }
    class MainApp {
        static void EventNumber(int num) {
            Console.WriteLine("{0}는 짝수 입니다.", num);
        }
        static void Main(string[] args) {
            EventManager eventManager = new EventManager();
            eventManager.eventCall += new MyDelegate(EventNumber);
            for (int i = 1; i <= 10 i ++) {
                eventManager.NumberCheck(i);
            }
        }
    }
}

댓글 남기기