C #: eventos o una interfaz de observador? ¿Pros contras

Tengo lo siguiente (simplificado):

interface IFindFilesObserver
{
    void OnFoundFile(FileInfo fileInfo);
    void OnFoundDirectory(DirectoryInfo directoryInfo);
}

class FindFiles
{
    IFindFilesObserver _observer;

    // ...
}

... y estoy en conflicto. Esto es básicamente lo que habría escrito en C ++, pero C # tiene eventos. ¿Debo cambiar el código para usar eventos o debo dejarlo solo?

Cuáles son las ventajas o desventajas de los eventos sobre una interfaz de observador tradicional?

Respuestas a la pregunta(11)

Su respuesta a la pregunta