레이블이 EventArgs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 EventArgs인 게시물을 표시합니다. 모든 게시물 표시

2022년 2월 3일 목요일

(C#교육동영상)C# 이벤트(Event),이벤트 발생시 데이터 넘기기, EventArgs, add, remove를 통한 이벤트생성, C#학원, 자바학원, WPF학원, 스프링학원

 (C#교육동영상)C# 이벤트(Event),이벤트 발생시 데이터 넘기기, EventArgs, add, remove를 통한 이벤트생성, C#학원, 자바학원, WPF학원, 스프링학원


https://www.youtube.com/watch?v=p9H3cDRjS7M&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=17 


https://www.youtube.com/watch?v=-5Wq51be-nc&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=20 


https://www.youtube.com/watch?v=tw6SakvHTtA&list=PLxU-iZCqT52DJyR6gqJy0MCL8RiTVXdos&index=21 

http://ojc.asia/bbs/board.php?bo_table=LecCsharp&wr_id=412 


(동영상)C# 이벤트(Event),이벤트 발생시 데이터 넘기기, EventArgs, add, remove를 통한 이벤트생성

(동영상)C# 이벤트(Event),이벤트 발생시 데이터 넘기기, EventArgs, add, remove를 통한 이벤트생성이벤트(Event)이벤트 발생시 데이터 넘기기add, remove를 통한 이벤트 작성이번에는 이벤트가 발생할 때 데

ojc.asia





이벤트(Event)

이벤트 발생시 데이터 넘기기

add, remove를 통한 이벤트 작성






이번에는 이벤트가 발생할 때 데이터를 넘기는 예제를 작성해 보자.


일반적으로 이벤트가 발생할 때 전달 해야하는 데이터가 존재한다. 마우스를 클릭한다면 어떤 버튼이 몇번 눌러졌는지 등, 이러한 경우 EventArgs를 상속받아서 넘길 데이터를 구현해 주면 된다.


namespace EventTest

{

    //이벤트 발생시 넘길 데이터(System.EventArgs 에서 파생)

    class EventData : System.EventArgs

    {

        public string myEventData;

        public EventData(string myEventData)

        {

            this.myEventData = myEventData;

        }

    }


    //이벤트 게시자 클래스

    class MyButton

    {

        //public delegate void MyEventHandler();

        //이벤트 처리를 위한 델리게이트 정의

        public event EventHandler MyClick; //이벤트 정의

        public void Do()

        {

            MyClick?.Invoke(this, new EventData("홍길이")); //이벤트 발생                

        }

    }

    //구독자 클래스

    class MyButtonClient

    {

        static void Main(string[] args)

        {

            MyButton p = new MyButton();

            p.MyClick += new EventHandler(doAction);

            p.Do();

        }

        //MyEvent 이벤트가 발생하면 호출되는 메소드

        //System.EventHandler 의 기본형태가 매개변수 2 개받고,

        //리턴형이 void 형 이므로 같은 형태로 만든다.

        static void doAction(object sender, EventArgs e)

        {

            Console.WriteLine("MyEvent 라는 이벤트 발생...");

            String s = ((EventData)e).myEventData;

            Console.WriteLine($"이벤트 발생시 넘어온 데이터: {s}");

        }

    }

}



4.이벤트 생성시 add, remove 사용하기 및 이벤트 호출방법


class Test

{

    private EventHandler handler;

    //아래 MyEvent 및 MyEvent2는 동일한 동작을 하는 이벤트이다.

    // add, remove 접근자를 사용하여 만든 이벤트는 호출시 델리게이트를 통해 가능하며

    // add, remove 접근자를 사용하지 않은 이벤트는 이벤트를 직접 호출가능하다.

    public event EventHandler MyEvent1

    {

        add

        {

            Console.WriteLine("add operation");

            handler += value;

        }


        remove

        {

            Console.WriteLine("remove operation");

            handler -= value;

        }

    }

    public event EventHandler MyEvent2;


    // 이벤트 발생시키는 메소드

    public void Do()

    {

        handler?.Invoke(null, null);    //이벤트 호출

        MyEvent2?.Invoke(null, null);

    }


    static void Main()

    {

        Test t = new Test();


        // 이벤트에 가입

        t.MyEvent1 += new EventHandler(t.DoNothing);        

        t.MyEvent2 += new EventHandler(t.DoNothing);

        t.Do();

        t.MyEvent1 -= new EventHandler(t.DoNothing);

        t.Do();

    }


    void DoNothing(object sender, EventArgs e)

    {

        Console.WriteLine("DoNothing 메소드 호출됨...");

    }

}






#이벤트, #시샵이벤트, #닷넷이벤트, #시샵Event, #EventArgs, #이벤트add, #이벤트remove, #닷넷교육, #닷넷학원, #시샵동영상, #시샵교육, 이벤트, 시샵이벤트, 닷넷이벤트, 시샵Event, EventArgs, 이벤트add, 이벤트remove, 닷넷교육, 닷넷학원, 시샵동영상, 시샵교육,  

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...