[동영상]C# 델리게이트(Delegate) 델리게이트 체인, 멀티캐스팅 Delegate Invoke, 닷넷교육, 닷넷학원, 자바학원, 스프링학원, 오라클학원, SQL학원, C#교육
http://ojc.asia/bbs/board.php?bo_table=LecCsharp&wr_id=409
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. 델리게이트란, 닷넷교육, 시샵교육, 시샵학원, 시샵, 닷넷학원, 시샵동영상, 닷넷동영상,
댓글 없음:
댓글 쓰기