Я хотел бы задать этот вопрос, поскольку в настоящее время я пытаюсь разобраться в использовании и назначении делегатов, хотя, вероятно, его задавали в аналогичных формулировках.
Я знаю, что делегаты служат указателями на функции, используемыми в C ++. Дело в том, что в C # они по большей части служат альтернативой интерфейсам и полиморфизму. Поскольку я могу создавать подклассы определенного класса и предоставлять им соответствующие методы для каждого из них, что предлагает делегаты в дополнение к этому? Есть ли случаи, которые предусматривают их использование, или просто улучшается ремонтопригодность кода при использовании делегатов? Вы бы порекомендовали их широкое развертывание через интерфейсы?
Я говорю исключительно о делегатах и хочу отделить их роль от роли событий.