定义方法时直接创建函数

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
};