04
23
다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다.

 

 

델리게이트의 장점

 - 타입 안정적인 콜백을 정의할 수 있다.

 - 클래스 간 상호 통신을 수행해야 할 때 클래스의 결합도를 낮출 수 있다.

 - 런타임에서 통지 대상을 설정할 수 있고, 다수의 클라이언트에게 통지를 보낼 수도 있다.

   (하나의 델리게이트는 여러 메서드를 참조할 수 있다)

 

.NET Framework 라이브러리는 Predicate <T>, Action<>, Func<>으로 델리게이트를 정의해두었다.

 

Predicate<T>

반환형이 bool인 델리게이트. Func<T, bool>과 동일하다.

 

Func

매개변수가 여러 개이며, 반환 값을 가지고 있다.

 

Action

매개변수가 여러 개지만 반환 타입이 void이다.

 

멀티캐스트 델리게이트

 - 델리게이트에 복수의 메서드를 연결한 것.

 - 내부적으로는 연속으로 함수들을 호출하기 때문에 예외가 발생하면 함수 호출이 중단된다.

 - 반환 값이 존재한다면, 마지막으로 호출된 함수의 반환 값을 가지게 된다.

 

결론

 - .NET 환경에서 콜백이 필요한 경우 반드시 델리게이트를 사용하자. 

 

 

COMMENT