En fait c'est très facilement debuggable, en mode debug tu verras juste le curseur ressortir de la fonction à la fin d'une itération pour revenir dedans là où il s'était arrêté.
Après si vraiment tu veux savoir ce qui se passe derrière c'est au moment de la compilation que s'est traduit, et il est toujours possible de décompiler un assemblage.NET avec des outils tels que "justDecompile" de Telerik par exemple.
Le principe du "yield" c'est une "machine à états". D'ailleurs avec le Framework 4.5 les mots clés "async" et "await" sont aussi basés sur le principe d'une machine à états.
Partager