====== L’opérateur yield ======
Exemple d'utilisation et explications :
http://www.ytechie.com/2009/02/using-c-yield-for-readability-and-performance/
On peut le comparer au streaming vidéo : plutôt que de devoir télécharger toute une vidéo avant de la lire, on peut la regarder au fur et à mesure qu'on la télécharge. Et si on arrête de la regarder pas besoin de télécharger la fin de la vidéo.
IList FindBobs(IEnumerable names)
{
var bobs = new List();
foreach(var currName in names)
{
if(currName == "Bob")
bobs.Add(currName);
}
return bobs;
}
devient :
IEnumerable FindBobs(IEnumerable names)
{
foreach(var currName in names)
{
if(currName == "Bob")
yield return currName;
}
}