Вам не нужно определять этот делегат:
delegate void ListChanged(object lst, ListChangedEventArgs args);
Вы можете просто использовать уже определенный делегат (ListChangedEventHandler
) из System.ComponentModel
namesapce:
ListChangedEventHandler lstchanged = delegate(object lst, ListChangedEventArgs args)
{
lblEmpCount.Text = lstEmployees.Count.ToString();
};
lstEmployees.ListChanged += lstchanged; // no error
ListChanged
Событие имеет тип ListChangedEventHandler
. Поэтому вы не можете ожидать, что он примет обработчик событий другого типа. Следующая строка неверна, потому что в вашем коде lstchanged
имеет ваш собственный тип делегата (ListChanged
), в то время как он должен иметь тип ListChangedEventHandler
.
lstEmployees.ListChanged += lstchanged; //error here
Для получения дополнительной информации вы можете прочитать эту статью .