dedlfix: yield return

Beitrag lesen

Tach!

Wenn dem so ist und die Foo-Methode zunächst mal als ein Generator betrachtet wird, warum sieht man dann nach dem Aufruf von Foo-Methode in der items-Variable (var items = Foo();) nur die Werte 1 und 2 als eine Liste mit Index-Nummern. Wo bleiben dann die Ausgaben A und B?

Die Liste siehst du genau wo? Im Debugger? Der hat dann freundlicherweise für dich iteriert. Aber üblicherweise tut er das bei Enumerationen nur, wenn du das durch Klick bestätigst (ausgehend vom Visual Studio). Die Ausgaben A und B landen genau da, wo du sie hinschickst: in der Konsole. Es kann nur sein, dass der Debugger nicht in die/deine Konsole schreibt.

Wenn man an der Console.Write("C"); Zeile einen Breakpoint setzt, hat man sofort die Ausgabe ABAB. Die Ausgabe nach der F5 wird dann so aussehen: ABABCA1B2. Ohne Breakpoint aber CA1B2.

Hmm, dann schreibt der Debugger wohl doch in die Konsole, die du siehst.

dedlfix.