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.
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!