C#에서 상속된 이벤트를 발생시키는 방법
C#에서는 이벤트를 기본 클래스에서 선언하고 파생 클래스에서 액세스할 수 있습니다. 그러나 상속된 클래스에서 이벤트를 발생시키려면 특정 처리가 필요합니다.
문제:
기본 클래스에서 상속된 이벤트를 발생시키려고 하면 다음과 같은 오류가 발생할 수 있습니다. 이벤트는 = 또는 -=의 왼쪽에만 나타날 수 있습니다.
해결책:
상속된 이벤트를 발생시키려면 이벤트를 호출하는 데 사용할 수 있는 기본 클래스에 보호된 메서드를 만들어야 합니다. 이러한 메서드는 "OnEventName" 명명 규칙을 따라야 합니다.
예를 들어 다음 기본 클래스를 고려하세요.
public class BaseClass { public event EventHandler Loading; public event EventHandler Finished; }
보호된 이벤트 발생 메서드:
기본 클래스에서 다음과 같은 보호된 메서드를 만듭니다. 다음:
protected virtual void OnLoading(EventArgs e) { EventHandler handler = Loading; if (handler != null) { handler(this, e); } } protected virtual void OnFinished(EventArgs e) { EventHandler handler = Finished; if (handler != null) { handler(this, e); } }
파생 클래스에서 이벤트 발생:
파생 클래스에서 보호된 메서드를 호출하여 이벤트:
public class DerivedClass : BaseClass { public void DoSomething() { ... OnLoading(EventArgs.Empty); ... OnFinished(EventArgs.Empty); } }
참고:
위 내용은 C#에서 상속된 이벤트를 올바르게 발생시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!