답변
정적 이벤트를 만들 수 있습니다. 클래스 내의 정적 컨텍스트에서 사용된다는 점을 제외하고는 일반 이벤트와 동일한 방식으로 사용합니다.
public class MyClass
{
public static event EventHandler MyEvent;
private static void RaiseEvent()
{
var handler = MyEvent;
if (handler != null)
handler(typeof(MyClass), EventArgs.Empty);
}
}
정적 이벤트에는 많은 문제가 있습니다. 정적 이벤트에 가입하면 구독 인스턴스가 근절되고 가비지 수집기가 이벤트를 수집하지 않으므로 정적 이벤트에서 개체를 구독 취소하는 데 특히주의해야합니다.
또한, 나는 내가 정적 이벤트를 만들 싶어 대부분의 경우, 내가 대신 Singleton에 표준 이벤트를 사용으로 배우는 경향이 있음을 발견했습니다. 이는 정적 이벤트와 동일한 시나리오를 처리하지만 "글로벌"레벨 인스턴스에 가입하는 것이 더 분명합니다 (IMO).
예. 가능합니다. 예를 들어 Application.ApplicationExit을 참조하십시오. 그러나 정적 이벤트에 연결할 때 메모리 누수에 대한 해당 페이지의 경고. 모든 정적 이벤트에 적용됩니다.
정적 클래스에 이벤트를 제공해야하거나 정적 데이터를 독점적으로 다루는 이벤트를 제공해야하는 경우에는이 방법을 사용하는 것이 좋습니다.
예, 이벤트를 정적으로 선언 할 수 있습니다. 당신은 그들에게 인스턴스 이벤트 인 경우에 당신이 그들을 사용하는 것과 같은 방법을 사용하지만 정적 방법 (오히려 variableName.EventName
이상 즉 ClassName.EventName
)에서 이벤트 이름에 액세스 할 수 있습니다.
이제 ... 은 (는) 정적 이벤트를 원하십니까? 그것은 매우 논쟁의 여지가 있습니다. 정적으로 테스트 할 때 어려움이 생기고 가능한 한 피할 수 있어야하기 때문에 개인적으로 아니오라고 말합니다.
하지만 확실히 가능합니다.
public delegate void SomeEventDelegate();
public class SomeClass
{
public static event SomeEventDelegate SomeEvent;
}
- 1. 클래스를 C++에서 정적으로 선언 할 수 있습니까?
- 2. 아직도 사용 중입니까? 그렇다면 어떻게 그리고 어디에서?
- 3. Wordpress 테마를 Tumblr에 이식 할 수 있습니까? 그렇다면 어떻게?
- 4. 사용자 정의 컨트롤에서 이벤트를 만들 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
- 5. Rakefile에서이 종속성을 어떻게 선언 할 수 있습니까?
- 6. 언제 그리고 왜 sprintf가 실패 할 수 있습니까?
- 7. 이 base40입니다. 그렇다면 C#에서 어떻게 디코딩 할 수 있습니까?
- 8. 이벤트를 어떻게 제거 할 수 있습니까?
- 9. PHP에서 REST를 사용할 수 있습니까? 그렇다면 어떻게?
- 10. Kit3D를 WPF에서 사용할 수 있습니까? 그렇다면 어떻게?
- 11. 이미지를 텍스트 영역에 추가 할 수 있습니까? 그렇다면 어떻게?
- 12. 그래프 데이터베이스를 분할 할 수 있습니까? 그렇다면 어떻게?
- 13. 자바 애플리케이션 서버는 스레드를 파괴 할 수 있습니까? 그렇다면 어떻게?
- 14. Vaadin을 Rails와 통합 할 수 있습니까 ??? 그렇다면 어떻게?
- 15. JBoss 5.1.0은 최신 배포를 지원합니까? 그렇다면 어떻게 할 수 있습니까?
- 16. TestNG에서 DataProviders로 XML 데이터를 검색 할 수 있습니까? 그렇다면 어떻게?
- 17. RSpec으로 동작을 초기화 할 때 어떻게 선언 할 수 있습니까?
- 18. 현재 컨트롤러에 정적으로 액세스 할 수 있습니까?
- 19. 어떻게하면 X11을 정적으로 컴파일 할 수 있습니까?
- 20. 어떻게 Perl의 POE로 Windows PnP 이벤트를 식별 할 수 있습니까?
- 21. 변수를 선언 할 때 부목을 어떻게 무시할 수 있습니까?
- 22. 폐쇄인가요? 그렇다면 왜?
- 23. 이벤트를 위임하고 이벤트를 호출 할 수 있습니까?
- 24. 컴파일 된 iPhone 응용 프로그램에서 리소스를 추출 할 수 있습니까? 그렇다면 어떻게 확보 할 수 있습니까?
- 25. 데이터베이스 테이블을 인덱싱 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
- 26. BroadcastReceiver에서 비 활동 클래스를 호출 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
- 27. 앵무새 - 사용할 수 있습니까? 그리고 어떻게?
- 28. 함수를 정적으로 선언하고 나중에 비 정적으로 선언 : 표준입니까?
- 29. 왜 내 프로그램에서 문자열을 선언 할 수 없습니다 : 내 프로그램에서 문자열을 선언 할 수 없습니다
- 30. 왜 C++ wt가 ExtJs 3.x와 통합되지 않았습니까? 그리고 그것을 어떻게 통합 할 수 있습니까?