Back to questions
Junior — Middle
63
Каким образом можно реализовать делегирование ответственности с помощью делегатов?
Answer from AI
sobes.tech AI
Делегаты в C# позволяют передавать методы как параметры, что облегчает делегирование ответственности. Это значит, что один объект может передать выполнение определённой задачи другому объекту через делегат.
Пример:
public delegate void Notify(string message);
public class Process
{
public Notify OnCompleted;
public void Start()
{
// Выполнение задачи
OnCompleted?.Invoke("Задача завершена");
}
}
// Использование
var process = new Process();
process.OnCompleted = msg => Console.WriteLine(msg);
process.Start();
Здесь метод, который вызывается при завершении, передаётся через делегат, что позволяет гибко менять поведение без изменения класса Process.