Maison > Problème commun > Quel est le principe fondamental du rendement ?

Quel est le principe fondamental du rendement ?

coldplay.xixi
Libérer: 2020-07-01 15:34:07
original
3512 Les gens l'ont consulté

Le principe de base de

yield est utilisé dans le bloc itérateur pour fournir des valeurs à l'objet énumérateur ou signaler la fin de l'itération. Ses instructions ne peuvent apparaître que dans le bloc itérateur, qui peut être utilisé comme méthode. , opérateur ou Le corps de l'accesseur.

Quel est le principe fondamental du rendement ?

Le principe de base du rendement est le suivant :

est utilisé dans le bloc itérateur pour ajouter l'énumérateur object Fournit une valeur ou signale la fin de l'itération.

Il a l'une des formes suivantes :

  • Copier le codeyield return <expression>;yield break; 

  • Remarques expression de calcul Et renvoyé sous la forme d'une valeur d'objet énumérateur

  • expression doit être implicitement convertible en type de rendement de l'itérateur.

L'instruction rendement ne peut apparaître que dans un bloc itérateur, qui peut être utilisé comme corps d'une méthode, d'un opérateur ou d'un accesseur.

Le corps d'une telle méthode, opérateur ou accesseur est régi par les contraintes suivantes :

  • Les blocs non sécurisés ne sont pas autorisés.

  • Le paramètre d'une méthode, d'un opérateur ou d'un accesseur ne peut pas être ref ou out.

  • La déclaration de rendement ne peut pas apparaître dans les méthodes anonymes.

Lorsqu'elle est utilisée avec une expression, une instruction rendement return ne peut pas apparaître dans un bloc catch ou dans un bloc try contenant une ou plusieurs clauses catch. Exemple Dans l'exemple suivant, l'instruction rendement est utilisée dans un bloc itérateur (ici la méthode Power(int number, int power)). Lorsque la méthode Power est appelée, elle renvoie un objet énumérable contenant des nombres élevés en puissances.

Notez que le type de retour de la méthode Power est IEnumerable (un type d'interface itérateur).

 yield-example.csusing System;using System.Collections;public class List{    public static IEnumerable Power(int number, int exponent)    {        int counter = 0;        int result = 1;        while (counter++ < exponent)        {            result = result * number;            yield return result;        }    }    static void Main()    {        // Display powers of 2 up to the exponent 8:        foreach (int i in Power(2, 8))        {            Console.Write("{0} ", i);        }    }}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal