非常简单的Lambda/事件参数探测
本文关键字:事件 参数 探测 Lambda 简单 非常 | 更新日期: 2023-09-27 18:22:04
所以我只是想把MyReader传递到EventHandler函数中。我知道我必须使用"=>"运算符,但我仍然会遇到错误。这是我的代码:
private void PrintButton_Click(object sender, RoutedEventArgs e)
{
StringReader MyReader= new StringReader(StrTxt);
PD.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
}
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
}
将其用作发送方和事件参数的附加参数:
PD.PrintPage += (sender, ev) => this.pd_PrintPage(sender, ev, MyReader);
//...
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
//...
}
您可以在括号中指定参数PD.PrintPage
具有(object sender, PrintPageEventArgs ev
),然后在=>
运算符之后指定要使用的函数。
如果您想传入额外的对象,您需要将它们公开为参数:
private void pd_PrintPage(object sender, PrintPageEventArgs ev, StringReader reader)
{
}
然后你可以使用:
PD.PrintPage += (sender, args) => this.pd_PrintPage(sender, args, MyReader);
请注意,您没有在这里使用=>,但可以:这样做很方便。至少还有两种其他方式可以更详细地做同样的事情。