delegate 요약

– 델리게이트를 통해 특정 작업을 캡슐화할 수 있다.

델리게이트 인스턴스에 어떤 메서드를 사용할 수 있는지는 델리게이트 타입의 선언에 따라 다르다.
– 델리게이트 인스턴스 생성을 위해서는 호출할 메서드와 (인스턴스 메서드의 경우) 메서드를 호출할 대상이 필요하다.
– 델리게이트 인스턴스는 불변성(immutable)을 갖는다. 한번 생성되고 나면 변경될 수 없다. 이렇기 때문에 델리게이트를 다른 델리게이트와 합친다거나 다른 메서드의 파라미터로 넘길 때 쓰레드 안정성이나 일관성 유지에 대해 고민하지 않아도 된다.(기존의 인스턴스를 합쳐서 새 인스턴스를 생성하면서 원본 인스턴스는 변경하지 않는다.)
– 각각의 델리게이트 인스턴스는 내부적으로 호출 리스트, 즉 동작의 리스트를 갖는다.
– 델리게이트 인스턴스들을 함께 조합하거나 다른 인스턴스에서 제거할 수 있다.
– 델리게이트 인스턴스에