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); } }
派生クラスでのイベントの発生:
派生クラスで、保護されたメソッドを呼び出して、 events:
public class DerivedClass : BaseClass { public void DoSomething() { ... OnLoading(EventArgs.Empty); ... OnFinished(EventArgs.Empty); } }
注:
以上がC# で継承されたイベントを適切に発生させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。