Delegate vs Interfaces en C #

Me gustaría plantear esta pregunta siempre que esté tratando de profundizar en el uso y el propósito de los delegados, aunque es probable que se haya formulado en formulaciones similares.

Sé que los delegados sirven como punteros de función utilizados en C ++. El hecho es que si en C # sirven principalmente como una alternativa a las interfaces y al polimorfismo. Como puedo crear subclases de una clase específica y proporcionarles los métodos apropiados para cada uno, ¿qué ofrecen los delegados además de eso? ¿Hay casos que estipulen su uso o simplemente se mejora la facilidad de mantenimiento del código cuando se usan los delegados? ¿Recomendaría su amplia implementación sobre las interfaces?

Estoy hablando únicamente de delegados y quiero distinguir su rol del rol de eventos.

Respuestas a la pregunta(10)

Su respuesta a la pregunta