如何在 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中文网其他相关文章!