在 .NET 应用程序中,事件通常以这种方式连接:
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value; }
remove { _dependency.OnChange -= value; }
}
但是,这仅在被连接的事件具有相同的事件处理程序时才有效。在我目前的情况下,原始事件 args 是库专有的,我不想将其公开给客户端代码。所以我有某种适配器(ChangeEventArgs)。如何使用上面的代码转换事件参数?我想像下面的东西(但下面的代码不起作用)
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += Convert(value); }
remove { _dependency.OnChange -= Convert(value); }
}
或者
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value(this, Convert(args)); }
remove { _dependency.OnChange -= value(this, Convert(args)); }
}