>  기사  >  백엔드 개발  >  C#의 대리자와 이벤트의 차이점

C#의 대리자와 이벤트의 차이점

WBOY
WBOY앞으로
2023-08-30 12:25:13951검색

C# 中的委托和事件之间的区别

이 기사에서는 C#에서 대리자와 이벤트의 차이점을 이해합니다.

Delegate

  • "delegate" 키워드를 사용하여 선언할 수 있습니다.
  • 함수 포인터입니다.

  • 런타임에 하나 이상의 메서드에 대한 참조를 저장합니다.

  • 독립적인 키워드입니다.

  • 이벤트에 의존하지 않습니다.

  • 호출 목록에 메서드를 추가하는 데 도움이 되는 Combine() 및 Remove() 메서드가 포함되어 있습니다.

  • 메서드에 매개변수로 전달될 수 있습니다.

  • "=" 연산자를 사용하여 단일 메서드를 할당할 수 있습니다.

  • "+=" 연산자를 사용하면 대리자에게 여러 메서드를 할당할 수 있습니다.

이벤트

  • 는 "event" 키워드를 사용하여 선언할 수 있습니다.

  • 위임에 의존하는 알림 메커니즘으로 정의할 수 있습니다.

  • 커미션에 따라 다릅니다.

  • 대리인 없이는 생성할 수 없습니다.

  • 델리게이트 인스턴스의 래퍼로 이해될 수 있습니다.

  • 이것은 대리인 사용자가 대리인과 통화 목록을 재설정하는 것을 방지하는 데 도움이 됩니다.

  • 통화 목록에서 대상을 추가하거나 제거하는 것만 허용됩니다.

  • "EventInfo" 클래스는 이벤트를 확인하고 이벤트 핸들러를 바인딩하는 데 도움을 줍니다.

  • 이러한 핸들에는 각각 호출 목록에 메서드를 추가하고 제거하는 데 도움이 되는 AddEventHandler() 및 RemoveEventHandler()와 같은 메서드가 포함되어 있습니다.

  • 이벤트를 발생시킬 수 있지만 메서드에 매개변수로 전달할 수는 없습니다.

  • "=" 연산자는 이벤트와 함께 사용할 수 없습니다.

  • "+=" 및 "-=" 연산자를 이벤트와 함께 사용하여 각각 이벤트 핸들러를 추가하거나 제거할 수 있습니다.

  • 이 메소드는 AddEventHandler와 같이 내부적으로 호출되며 이벤트 핸들러를 삭제합니다.

위 내용은 C#의 대리자와 이벤트의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제