Делегат на языке .NET - это не что иное, как указатель на функцию или, другими словами, переменная, указывающая на блок исполняемого кода. Их можно использовать по-разному. Одним из способов является их использование в контексте событий. Допустим, у вас есть страница ASP.NET, и вы используете MVP (шаблон представления модели на этой странице). Вы хотите, чтобы ваш докладчик был уведомлен о событии нажатия кнопки сохранения в представлении. Вы можете определить событие в интерфейсе представлений, но для того, чтобы подписаться на это событие и предпринять действия над ним, вам нужно зарегистрировать метод, который запускается при возникновении события. Например:
public class ClassThatRegistersForEvent
{
public void InitializeView(IView view)
{
view.SaveButtonClickedEvent += delegate{
// do stuff in here when the event is raised
}
}
}
public interface IView
{
event System.EventHandler SaveButtonClickedEvent;
}