在接口中声明事件
2022/04/24
最近在给 ** 系列做升级,其中遇到需要在接口中声明事件的情形,半天记不起来怎么写了,于是上 Microsoft Docs
找了一下,官方给出的示例如下:
namespace ImplementInterfaceEvents
{
public interface IDrawingObject
{
event EventHandler ShapeChanged;
}
public class MyEventArgs : EventArgs
{
// class members
}
public class Shape : IDrawingObject
{
public event EventHandler ShapeChanged;
void ChangeShape()
{
// Do something here before the event
OnShapeChanged(new MyEventArgs(/*arguments*/));
// or do something here after the event.
}
protected virtual void OnShapeChanged(MyEventArgs e)
{
ShapeChanged?.Invoke(this, e);
}
}
}
说到这里,我记得以前我是写过的,而且还很熟悉,至少在上家公司还写过,结果自从到了现公司就……有些可悲了。