具有类型委托的函数参数。 该函数添加一个eventhandler,并期望该方法作为参数。 如何实现这一目标?使用委托作为事件处理参数
例如:
private void myFunction(Delegate del)
{
...
var b = new Button();
b.Click += new EventHandler(<method delegate refers to should be used>);
}
具有类型委托的函数参数。 该函数添加一个eventhandler,并期望该方法作为参数。 如何实现这一目标?使用委托作为事件处理参数
例如:
private void myFunction(Delegate del)
{
...
var b = new Button();
b.Click += new EventHandler(<method delegate refers to should be used>);
}
如果你可以改变的del
到EventHandler
的类型,那么你可以使用以下命令:
b.Click += del;
目前,没有这没有任何意义 - 因为它可能是任何类型的代表。
如果委托传入了15个参数,您会希望发生什么?它将如何被称为?
如果您可以提供更多关于您想要实现的功能的信息 - 以及为什么您尝试仅使用Delegate
而不是某种特定的委托类型 - 这将有所帮助。
给myFunction的参数应该是一个Action<object, EventArgs>
private void myFunction(Action<object, EventArgs> del)
{
var b = new Button();
b.Click += new EventHandler(del);
}
或者仅仅是一个EventHandler
尝试使用这样的代码:
...............
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);
}
............