멀티캐스트
- 내부에 호출할 메소드의 목록을 가지고 있으므로 여러 개의 매소드를 등록할 수 있다
- 호출할 메소드를 추가할때는 + 연산자나 += 연산자를 사용하며
반대로 메소드를 제거할때는 - 연산자나 -=연산자를 사용한다
- d를 Method2로 바꾸는 대신 +=로 추가했다
이런 추가 연산자를 한번이라도 사용하면 컴파일러가 d를 멀티캐스트 델리게이트로 생성
+= 연산에 의해 d 객체에는 Method1,2 두 개의 메소드가 동시에 등록되며 d를 호출하면 두 메소드가 순서대로 호출된다
dMe d;
d = Method1;
d += Method2;
dMe d = null;
d += Method1;
d += Method2;
// 두가지다 같은 방법이다
- 멀티캐스트 델리게이트는 여러 개의 메소드를 한꺼번에 호출하므로 리턴 타입은 void 이어야 한다
- 멀티캐스팅은 하나의 사건을 여러 개의 갹체에 동시에 전달하고 싶을때 사용한다
- dRendMe 델리게이트 타입은 비디오를 빌료 보는 메소드의 목록을 가리킨다
- RentCall 객체는 최신작을 기다리는 고객들의 목록에 비유
'Study > C#' 카테고리의 다른 글
C# 델리게이트 - 2. 이벤트 (익명 메소드) (0) | 2012.01.10 |
---|---|
C# 델리게이트 - 2. 이벤트 (이벤트) (0) | 2012.01.10 |
C# 델리게이트 - 1. 델리게이트 (활용) (0) | 2012.01.09 |
C# 델리게이트 - 1. 델리게이트 (공변성) (0) | 2012.01.06 |
C# 델리게이트 - 1. 델리게이트 (메소드 참조) (0) | 2012.01.06 |