C# 如何将函数作为参数传递

C# 如何将函数作为参数传递,c#,C#,好的,我已经将函数作为参数传递给另一个函数,如下所示: someFunction(..., passFunc); passFunc(){ MessageBox.Show("Message"); } private void someFunction(..., Func<int> f) { f(); } 下面是代码:为什么不向该按钮的事件处理程序订阅passFunc? 它看起来像这样 button1.Click+=neweventhandler(passFunc) 然后passFun

好的,我已经将函数作为参数传递给另一个函数,如下所示:

someFunction(..., passFunc);
passFunc(){ MessageBox.Show("Message"); }
private void someFunction(..., Func<int> f) { f(); }

下面是代码:

为什么不向该按钮的事件处理程序订阅passFunc? 它看起来像这样
button1.Click+=neweventhandler(passFunc)
然后passFunc就会

void passFunc(object sender, EventArgs e)
{
     MessageBox.Show((sender as Button).Text); 
}

我不知道这是否正是您想要实现的,但它可能会起作用。

为什么不向该按钮的事件处理程序订阅passFunc? 它看起来像这样
button1.Click+=neweventhandler(passFunc)
然后passFunc就会

void passFunc(object sender, EventArgs e)
{
     MessageBox.Show((sender as Button).Text); 
}

我不知道这是否正是您想要实现的,但它可能会起作用。

如果要将输入传递给func,请使用此泛型类型重载:

Func<string, int> passFunc
编辑2:

passFunc(对象发送方,EventArgs e)
不能与Func一起使用,因为它可能具有无效的返回类型。
然后,如果要将输入传递给func,则必须使用
操作

使用此泛型类型重载:

Func<string, int> passFunc
编辑2:

passFunc(对象发送方,EventArgs e)
不能与Func一起使用,因为它可能具有无效的返回类型。
然后必须使用
操作

为什么要从按钮中输入文本
Func Func=(发送方,e)=>{return(发送方作为控件).Text;}
为什么要从按钮中获取文本
Func Func=(发送方,e)=>{return(发送方作为控件)。Text;}