2022년 2월 1일 화요일

[동영상]C# 델리게이트(Delegate) 델리게이트 체인, 멀티캐스팅 Delegate Invoke, 닷넷교육, 닷넷학원, 자바학원, 스프링학원, 오라클학원, SQL학원, C#교육

 [동영상]C# 델리게이트(Delegate)  델리게이트 체인, 멀티캐스팅  Delegate Invoke, 닷넷교육, 닷넷학원, 자바학원, 스프링학원, 오라클학원, SQL학원, C#교육


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


[동영상]C# 델리게이트(Delegate) 델리게이트 체인, 멀티캐스팅 Delegate Invoke

[동영상]C# 델리게이트(Delegate) 델리게이트 체인, 멀티캐스팅 Delegate Invoke델리게이트(Delegate)델리게이트 체인, 멀티캐스팅델리게이트 Invoke델리게이트(Delegate) 체인델리게이트(Delegate) 체인은 하나

ojc.asia


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

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

델리게이트(Delegate)

델리게이트 체인, 멀티캐스팅

델리게이트 Invoke






델리게이트(Delegate) 체인


  • 델리게이트(Delegate) 체인은 하나의 델리게이트안에 여러 메소드를 체인처럼 연결하여 연쇄적으로 호출하는 것을 말한다.


  • Delegate.Combine을 이용하여 여러 델리게이트를 체인으로 연결할 수 있는데 형식은 다음과 같다.
Delegate.Combine(델리게이트1, 델리게이트2,,,)

기존의 델리게이트를 연결한 새로운 델리게이트를 반환하며 메소드명을 직접 파라미터로 줄 수는 없다.


  • Delegate.Combine을 이용하여 체인으로 구성한 부분을 +=, +를 이용하여 멀티캐스팅으로 구성하는 것도 가능한데, 델리게이트가 2개 이상의 메소드를 참조하는 것을 멀티캐스팅 이라고 한다. -=, Delegate.Remove를 이용하여 델리게이트를 삭제할 수 있다.


  • 기존 델리게이트에 메소드참조가 추가되는 것은 기존 델리게이트가 변경되는 것이 아니라 새로운 델리게이트가 생성되는 것으로 Delegate는 Immutable 형식이다.


[실습]


// 델리게이트는 메소드를 참조하고 있는 것으로
// 런타임시 델리게이트가 참조하는 메소드를 실행하고
// 구현을 동적으로 할 수 있는 콜백 함수를 구현하는 용도
class Test
{
    public delegate void MyDelegate(int i, int j);
    public static void Main()
    {
        MyDelegate m1 = new MyDelegate(Add);
        MyDelegate m2 = new MyDelegate(Minus);
        MyDelegate m3 = new MyDelegate(Gop);
        MyDelegate m4 = new MyDelegate(Nanugi);

        // 델리게이트 체인
        MyDelegate mChain = (MyDelegate)Delegate.Combine(m1, m2, m3, m4);
        mChain(10, 2);

        //멀티캐스팅
        MyDelegate mMulti = m1 + m2 + m3 + m4;
        mMulti(99, 9);

        //Namugi 삭제
        mMulti -= m4;
        mMulti(77, 7);

        //Gop삭제
        MyDelegate mMulti2 = (MyDelegate)Delegate.Remove(mMulti, m3);
        mMulti2(33, 3);  // +, - 만 살아있음

    }

    public static void Add(int a, int b) => Console.WriteLine("{0} + {1} = {2}", a, b, a + b);
    public static void Minus(int a, int b) => Console.WriteLine("{0} - {1} = {2}", a, b, a - b);
    public static void Gop(int a, int b) => Console.WriteLine("{0} * {1} = {2}", a, b, a * b);
    public static void Nanugi(int a, int b) => Console.WriteLine("{0} / {1} = {2}", a, b, a / b);
}


 


#델리게이트, #Delegate, #델리게이트체인, #델리게이트멀티캐스팅  #DelegateInvoke. #델리게이트란, #닷넷교육, #시샵교육, #시샵학원, #시샵, #닷넷학원, #시샵동영상, #닷넷동영상, 델리게이트, Delegate, 델리게이트체인, 델리게이트멀티캐스팅  DelegateInvoke. 델리게이트란, 닷넷교육, 시샵교육, 시샵학원, 시샵, 닷넷학원, 시샵동영상, 닷넷동영상,  

댓글 없음:

댓글 쓰기

(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...