roboczy wzór zwrotu zysku

Kiedy mam blok kodu

static void Main()
{

  foreach (int i in YieldDemo.SupplyIntegers())
  {
    Console.WriteLine("{0} is consumed by foreach iteration", i);
  }
}


 class YieldDemo
  {
    public static IEnumerable<int> SupplyIntegers()
     {
         yield return 1;
         yield return 2;
          yield return 3;
       }
   }

czy mogę interpretować zasadę zwrotu zysku jako

Main () wywołuje SupplyIntegers ()|1| |2| |3| are stored in contiguous memory block.Pointer of "IEnumerator" Moves to |1|Sterowanie powraca z SupplyInteger () do Main ().Main () drukuje wartośćWskaźnik przesuwa się do | 2 | i tak dalej.

Wyjaśnienia:

(1) Normalnie będziemy mieli jedną poprawną instrukcję return, która jest dozwolona wewnątrz funkcji. Jak C # traktuje, gdy występuje wiele zwrotów wydajności, zwrot wydajności, ... są instrukcje?

(2) Po napotkaniu zwrotu nie ma możliwości, aby kontrola ponownie powróciła do SupplyIntegers (), w przypadku, gdy jest to dozwolone, czy Yield nie zacznie ponownie od 1? Mam na myśli zwrot z zysku 1?

questionAnswers(4)

yourAnswerToTheQuestion