我想创建一个方法,将事件作为参数,并向其添加eventHandler以正确处理它.像这样:
我有两个事件:
public event EventHandler Click;
public event EventHandler Click2;
Run Code Online (Sandbox Code Playgroud)
现在我想将一个特定事件传递给我的方法(伪代码):
public AttachToHandleEvent(EventHandler MyEvent)
{
MyEvent += Item_Click;
}
private void Item_Click(object sender, EventArgs e)
{
MessageBox.Show("lalala");
}
ToolStripMenuItem tool = new ToolStripMenuItem();
AttachToHandleEvent(tool.Click);
Run Code Online (Sandbox Code Playgroud)
可能吗?
我注意到这段代码工作正常,并返回到我的项目,并注意到当我传递在我的类中声明的事件时,它可以工作,但是当我从其他类传递事件时,它仍然无效.
我得到的是这个错误:
事件'System.Windows.Forms.ToolStripItem.Click'只能出现在+ =或 - =的左侧
签署这样的签名的目的是什么Observable.FromEvent?对于例如:
var appActivated = Observable.FromEvent(
h => Application.Current.Activated += h,
h => Application.Current.Activated -= h);
Run Code Online (Sandbox Code Playgroud)
特别是什么h?为什么+=,然后-=?我们Observable从事件或事件处理程序制作?如果从事件,为什么不只是有一个签名,如:
var appActivated = Observable.FromEvent(Application.Current.Activated);
Run Code Online (Sandbox Code Playgroud)