C# LanguageRendement


Introduction

Lorsque vous utilisez le mot-clé yield dans une instruction, vous indiquez que la méthode, l'opérateur ou le accesseur dans lequel il apparaît est un itérateur. L'utilisation de yield pour définir un itérateur supprime la nécessité d'une classe supplémentaire explicite (la classe qui contient l'état d'une énumération) lorsque vous implémentez les modèles IEnumerable et IEnumerator pour un type de collection personnalisé.

Syntaxe

  • rendement de retour [TYPE]
  • rupture de rendement

Remarques

Indiquer le mot-clé de yield dans une méthode avec le type de retour IEnumerable , IEnumerable<T> , IEnumerator ou IEnumerator<T> indique au compilateur de générer une implémentation du type de retour ( IEnumerable ou IEnumerator ) qui exécute la boucle méthode jusqu'à chaque "rendement" pour obtenir chaque résultat.

Le mot-clé yield est utile lorsque vous souhaitez renvoyer l'élément "suivant" d'une séquence théoriquement illimitée. Il serait donc impossible de calculer l'intégralité de la séquence ou de calculer la séquence complète des valeurs avant de renvoyer une pause indésirable pour l'utilisateur. .

yield break peut également être utilisée pour terminer la séquence à tout moment.

Comme le mot clé yield nécessite un type d'interface d'itérateur en tant que type de retour, tel que IEnumerable<T> , vous ne pouvez pas l'utiliser dans une méthode asynchrone, car cela retourne un objet Task<IEnumerable<T>> .

Lectures complémentaires

Rendement Exemples Liés