• 메서드 자체를 값으로 갖는 타입의 인스턴스 생성
  • C/C++만 아는 사람에겐 함수 포인터의 의미로 다가옴
  • 일어난 일과 그 일에 대한 다음 처리를 분리

  • delegate를 사용하는 경우
    • 이벤트 디자인 패턴을 사용
    • 정적 메서드를 캡슐화해야 하는 경우
    • 메서드를 구현하는 개체에 대한 다른 속성 메서드 또는 인터페이스에 호출자가 액세스할 필요가 없을 때
    • 쉽게 작성
    • 메서드에 대한 여러 구현이 클래스에 필요한 경우
  • 인터페이스를 사용하는 경우
    • 호출할 수 있는 관련 메서드의 그룹이 있는 경우
    • 클래스에 메서드의 구현이 하나만 필요한 경우
    • 인터페이스를 사용하는 클래스에서 이 인터페이스를 다른 인터페이스나 클래스 형식에 캐스팅하려는 경우
    • 비교 메서드의 경우와 같이 구현하려는 메서드가 클래스의 형식이나 동일성 여부와 관련되어 있는 경우

Non-static 메서드를 인자로 타입의 인스턴스 

  • 35번 라인: 이벤트에 test.ActuallyRun 메서드를 인자로 하는 타입의 인스턴스 delegate(대리자)를 연결
  • 36번 라인: EvenTrigger로 이벤트 발생하고 delegate로 인해 ActuallyRun 실행

'C# 기초 > MyResearching' 카테고리의 다른 글

[C#][Thread]  (0) 2020.02.16
[C#][Event]  (0) 2020.02.14
[C#][Example]TreeView  (0) 2020.02.13

+ Recent posts