2015년 10월 15일 목요일

[c#,이벤트,델리게이트]이벤트에가입하는 여러방법들(무명함수,람다식,EventHandler)

[c#,이벤트,델리게이트]이벤트에가입하는 여러방법들(무명함수,람다식,EventHandler),실습하세요

using System;

namespace ConsoleApplication1
{
    //이벤트 게시자 클래스
    class EventPublisher
    {
        public event EventHandler MyEvent;

        public void Do()
        {
            if (MyEvent != null)
            {
                MyEvent(null, null);
            }
        }
    }

    //구독자 클래스
    class Subscriber
    {
        static void Main(string[] args)
        {
            EventPublisher p = new EventPublisher();

            //C#1.0에서의 이벤트에 가입하는 방법
            p.MyEvent += new EventHandler(doAction);

            //C#2.0이상에서 이벤트에 가입하는 방법
            p.MyEvent += doAction;

            //C#2.0이상에서 delegate를 이용한 무명함수로 이벤트에 가입하는 방법
            p.MyEvent += delegate(object sender, EventArgs e)
            {
               Console.WriteLine("MyEvent 라는 이벤트 발생");
            };

            //C#3.0 이후 람다식을 이용한 무명함수로 이벤트에 가입하는 방법
            p.MyEvent += (sender, e) =>
            {
                Console.WriteLine("MyEvent 라는 이벤트 발생");
            };          


            p.Do();
        }

        static void doAction(object sender, EventArgs e)
        {
            Console.WriteLine("MyEvent 라는 이벤트 발생");
        }
    }
}

댓글 없음:

댓글 쓰기