具有delegate类型的函数参数。 该函数添加一个eventhandler并将该方法作为参数。 如何实现这个目标?
示例:
private void myFunction( Delegate del )
{
...
var b = new Button();
b.Click += new EventHandler( <method delegate refers to should be used> );
}
答案 0 :(得分:1)
如果您可以将del
的类型更改为EventHandler
,那么您只需使用以下内容:
b.Click += del;
答案 1 :(得分:1)
目前,这没有任何意义 - 因为它可能是任何类型的代表。
如果传入的委托占用15个参数,您希望发生什么?它怎么称呼?
如果您可以提供有关您要实现的目标的更多信息 - 以及为什么您只想使用Delegate
而不是某些特定的委托类型 - 这会有所帮助。
答案 2 :(得分:0)
myFunction的参数应为Action<object, EventArgs>
private void myFunction(Action<object, EventArgs> del)
{
var b = new Button();
b.Click += new EventHandler(del);
}
或只是EventHandler
答案 3 :(得分:0)
尝试使用此类代码:
...............
private void btn_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
private void MyFunc(EventHandler Meth)
{
button1.Click += Meth;
}
private void TestCall()
{
MyFunc(btn_Click);
}
............