Heim >häufiges Problem >Was ist das Grundprinzip der Rendite?

Was ist das Grundprinzip der Rendite?

coldplay.xixi
coldplay.xixiOriginal
2020-07-01 15:34:073517Durchsuche

Das Kernprinzip von yield besteht darin, dass es im Iteratorblock verwendet wird, um dem Enumeratorobjekt Werte bereitzustellen oder das Ende der Iteration zu signalisieren. Seine Anweisungen können nur im Iteratorblock erscheinen Wird als Methode, Operator oder Körper des Accessors verwendet.

Was ist das Grundprinzip der Rendite?

Das Kernprinzip von yield ist:

wird im Iteratorblock verwendet, um den Enumerator hinzuzufügen Objekt Geben Sie einen Wert an oder signalisieren Sie das Ende der Iteration.

Es hat eine der folgenden Formen:

  • Code kopierenyield return 41256fb142f22f4bfc3f76fe922f5535;yield break; 

  • Bemerkungen Berechnungsausdruck Und wird in Form eines Enumeratorobjektwerts zurückgegeben;

  • expression muss implizit in den Ertragstyp des Iterators konvertierbar sein.

Die yield-Anweisung kann nur innerhalb eines Iteratorblocks erscheinen, der als Hauptteil einer Methode, eines Operators oder eines Accessors verwendet werden kann.

Der Körper einer solchen Methode, eines solchen Operators oder eines Accessors unterliegt den folgenden Einschränkungen:

  • Unsichere Blöcke sind nicht zulässig.

  • Der Parameter einer Methode, eines Operators oder eines Accessors darf nicht ref oder out sein.

  • Die Ertragsangabe kann in anonymen Methoden nicht erscheinen.

Bei Verwendung mit expression kann eine yield return-Anweisung nicht in einem Catch-Block oder in einem Try-Block erscheinen, der eine oder mehrere Catch-Klauseln enthält. Beispiel Im folgenden Beispiel wird die yield-Anweisung in einem Iteratorblock verwendet (hier die Methode Power(int number, int power)). Wenn die Power-Methode aufgerufen wird, gibt sie ein aufzählbares Objekt zurück, das Potenzen enthält.

Beachten Sie, dass der Rückgabetyp der Power-Methode IEnumerable ist (ein Iterator-Schnittstellentyp).

 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);        }    }}

Das obige ist der detaillierte Inhalt vonWas ist das Grundprinzip der Rendite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn