Делегаты. Windows Forms. Вопрос от новичка
У меня такой вопрос: почему невозможно совершить данное преобразование:
using System;
namespace Learn_Words_WF_Menus
{
public delegate void Action(object sender, EventArgs e);
}
using System.Windows.Forms;
namespace Learn_Words_WF_Menus
{
public class EMPTY : ControlMenu
{
Button Back_Button;
public EMPTY(Form form, Action backButton_Click) : base(form)
{
Set_Actions(backButton_Click);
}
private void Set_Actions(Action backButton_Click)
{
Back_Button.Click += backButton_Click; // вот тут выдает ошибку
//Ошибка CS0029 Не удается неявно преобразовать тип
//"Learn_Words_WF_Menus.Action" в "System.EventHandler"
}
}
}
Но можно сделать сделать так:
using System.Windows.Forms;
namespace Learn_Words_WF_Menus
{
public class EMPTY : ControlMenu
{
Button Back_Button;
public EMPTY(Form form, Action backButton_Click) : base(form)
{
Set_Actions(backButton_Click);
}
private void Set_Actions(Action backButton_Click)
{
Back_Button.Click += Click;
}
private void Click(object sender, EventArgs e)
{
//do something
}
}
}
Что я делаю неправильно или чего я не понимаю? Заранее спасибо за ответ.
Источник: Stack Overflow на русском