定义方法时直接创建函数
Direct create function while defining the method
我正在尝试创建一个匿名方法来处理 PrintDocument
对象的 PrintPage
事件。
这是我尝试过的:
printDocument1.PrintPage += delegate
{
// define method
}
我想要完成的是这样的:
printDocument1.PrintPage += new PrintPageEventHandler
(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
// define method
}
我想做的是在调用函数时使用 PrintPageEventArgs
参数 e
。这可能吗?
是的,需要创建一个lambda expression,如下:
printDocument1.PrintPage += (s, e) =>
{
// Method code goes here
// The variable s represents the first parameter, "object sender"
// The variable e represents the second parameter, "PrintPageEventArgs e"
};
这将创建一个使用 lambda 表达式的匿名方法。 (s, e)
按照它们在委托中出现的顺序表示输入参数。
如果您使用的是 3.0 之前的 C# 版本,因此没有 lambda 表达式,您可以通过委托执行此操作,如下所示:
printDocument1.PrintPage += delegate(object sender, PrintPageEventArgs e)
{
// Method code goes here
};
我正在尝试创建一个匿名方法来处理 PrintDocument
对象的 PrintPage
事件。
这是我尝试过的:
printDocument1.PrintPage += delegate
{
// define method
}
我想要完成的是这样的:
printDocument1.PrintPage += new PrintPageEventHandler
(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
// define method
}
我想做的是在调用函数时使用 PrintPageEventArgs
参数 e
。这可能吗?
是的,需要创建一个lambda expression,如下:
printDocument1.PrintPage += (s, e) =>
{
// Method code goes here
// The variable s represents the first parameter, "object sender"
// The variable e represents the second parameter, "PrintPageEventArgs e"
};
这将创建一个使用 lambda 表达式的匿名方法。 (s, e)
按照它们在委托中出现的顺序表示输入参数。
如果您使用的是 3.0 之前的 C# 版本,因此没有 lambda 表达式,您可以通过委托执行此操作,如下所示:
printDocument1.PrintPage += delegate(object sender, PrintPageEventArgs e)
{
// Method code goes here
};