Comprendre C # 'S yield
Mot-clé: simplification de la création de l'itérateur
Le mot-clé yield
en C # simplifie considérablement la création des itérateurs. Les itérateurs fournissent une séquence de valeurs sans exiger que la séquence entière soit stockée en mémoire à la fois. Cette «évaluation paresseuse» améliore l'efficacité, en particulier lorsqu'il s'agit de grands ensembles de données.
Le mot-clé yield
transforme une boucle standard en méthode itérateur. Cette méthode renvoie un objet implémentant l'interface IEnumerable<T>
(où T
est le type d'éléments dans la séquence). Lorsque l'appelant itère à l'aide d'une boucle foreach
, la méthode Itérator s'exécute, s'arrêtant et reprenant chaque itération grâce à yield
.
Cela élimine la comptabilité manuelle généralement associée à la mise en œuvre de l'itérateur, entraînant un code plus propre et plus maintenable.
Considérez cet exemple:
<code class="language-csharp">public IEnumerable<object> FilteredList() { foreach(object item in FullList) { if(IsItemInPartialList(item)) yield return item; } }</code>
FilteredList
Renvoie un sous-ensemble filtré de FullList
. L'instruction yield return
s'arrête l'exécution après la découverte de chaque élément de correspondance, renvoyant cet élément à l'appelant. L'itérateur reprend lorsque l'élément suivant est demandé.
yield
est inestimable dans diverses situations: générer des séquences à partir de requêtes, lire paresseusement des données à partir de fichiers ou de bases de données et de création d'itérateurs personnalisés pour des structures de données uniques. Son introduction en C # 2.0 a considérablement amélioré la facilité et l'efficacité du développement des itérateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!