winform 委托作为方法参数
时间: 2023-08-30 20:05:30 浏览: 44
在 WinForm 中,委托可以作为方法参数传递,以便在方法内部调用委托来执行特定的操作或处理事件。
例如,假设您有一个包含一个按钮的窗体,并且想要在单击按钮时执行某些操作。您可以定义一个方法来处理按钮的 Click 事件,并将一个委托作为参数传递给该方法,以便在单击按钮时调用委托执行特定的操作。
下面是一个示例代码:
```c#
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 委托作为方法参数
DoSomething(() => MessageBox.Show("Button clicked!"));
}
private void DoSomething(Action action)
{
// 在方法内部调用委托
action.Invoke();
}
}
```
在上面的代码中,我们定义了一个 DoSomething 方法,它接受一个委托类型的参数 action。在 button1_Click 方法中,我们将一个 lambda 表达式作为参数传递给 DoSomething 方法,该 lambda 表达式会在单击按钮时调用 MessageBox.Show 方法显示一个消息框。
注意,委托作为方法参数时,可以使用任何委托类型,包括 EventHandler 和 Action 等。但是,EventHandler 是一个预定义的委托类型,通常用于处理事件,因此在 WinForm 中使用 EventHandler 更为常见。