인터페이스를 구현하는 클래스가 모든 메서드를 구현해야한다는 것을 알고 있습니다. 그러나 인터페이스 내부의 이벤트는 무엇을 의미합니까?인터페이스 내부의 이벤트는 무엇을 의미합니까?
답변
이는 클라이언트가 이벤트를 구독 할 수 있도록 유형이 이벤트를 구현해야 함을 의미합니다.
이벤트는 속성이 가져 오기/설정 됨과 같이 메소드 쌍 (추가/제거)으로 생각하십시오. 인터페이스에 속성을 가질 수있는 것처럼 이벤트도 가질 수 있습니다. 구현은 적절한 추가/제거 메소드와 메타 데이터를 제공하여 이벤트에 연결해야합니다.
public event EventHandler EventFromInterface;
또는 명시 적으로 추가로/방법을 제거 : C#에서이 필드 같은 이벤트를 사용하여 수행 할 수 있습니다
이public event EventHandler EventFromInterface
{
add { ... }
remove { ... }
}
그것은 해당 이벤트를 인상해야한다는 인터페이스를 구현하는 것을 의미한다. 인터페이스 내의 메소드 또는 속성과 거의 같습니다.
"인상"은 부적절한 단어라고 생각합니다. 이벤트가 어디에서나 발생하도록 강요하는 것은 없습니다.하지만 클래스는 발신자가 구독/가입 취소에 사용할 추가/제거 구현을 제공해야합니다. –
나는 까다 롭지 만 실제로 구현자가 이벤트를 정의해야한다는 것을 의미한다. (어쩌면 결코 그것을 올릴 수 없다) –
@Jon Skeet, raise는 완벽한 단어이다. 왜냐하면 구현자가 이벤트를 발생시키지 않는다면 이벤트는 쓸모 없으며 자식 클래스도 아니다. 또는 공개 액세스로 인해 이벤트가 발생할 수 있습니다. –
- 1. vb.net에서 공용 클래스 [인터페이스]는 무엇을 의미합니까?
- 2. DataMemberAttribute를 인터페이스 멤버에 두는 것은 무엇을 의미합니까?
- 3. OpenSSL의 EVP는 무엇을 의미합니까?
- 4. 무엇을 의미합니까?
- 5. 아이폰 인터페이스 오버레이 통과 이벤트는
- 6. R에서 "data.frame에 대한 표준 공식 인터페이스"는 무엇을 의미합니까?
- 7. 이것은 무엇을 의미합니까?
- 8. 단위 테스트는 무엇을 의미합니까?
- 9. 벡터화 란 무엇을 의미합니까?
- 10. JSON에서 .d는 무엇을 의미합니까?
- 11. 이 오류는 무엇을 의미합니까?
- 12. "벌크로드"란 무엇을 의미합니까?
- 13. pty와 tty는 무엇을 의미합니까?
- 14. HyperLink에서 EnableViewState는 무엇을 의미합니까?
- 15. 이 오류는 무엇을 의미합니까?
- 16. ACM은 무엇을 의미합니까?
- 17. BatchUpdateException은 무엇을 의미합니까?
- 18. "_"은 무엇을 의미합니까?
- 19. 비동기 ORM은 무엇을 의미합니까
- 20. 힘내 - 무엇을 의미합니까 -m
- 21. "->"PHP에서 무엇을 의미합니까?
- 22. php.ini에서 이것은 무엇을 의미합니까?
- 23. 이벤트 란 무엇을 의미합니까?
- 24. 이 코드는 무엇을 의미합니까?
- 25. 이것은 무엇을 의미합니까 $();
- 26. 언어가 '해석되는'것은 무엇을 의미합니까?
- 27. JSONP의 'P'는 무엇을 의미합니까?
- 28. JS $는 무엇을 의미합니까?
- 29. 이 JavaScript는 무엇을 의미합니까?
- 30. new()는 무엇을 의미합니까?
이벤트를 발생시키는 것도 필요합니다. 발생시키지 않고 이벤트를 정의하는 것이 현명한 도움이되는 시나리오를 제공 할 수 있습니까? –
관련없는 관찰 - 이벤트 (및 방법 쌍)에 관한 질문이 적어도 한 시간도 채 걸리지 않은 상황에서 적어도 3-4 개의 질문이 있었던 것은 흥미 롭습니다! – Mehrdad
@ 램버트 : 나는 그들이 비 관련성과는 거리가 멀다고 생각한다. 원래 질문은 기본적으로이 것들을 만들어 냈다고 생각한다. –