具有類型委託的函數參數。 該函數添加一個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);
}
............