Ich habe über das Schlüsselwort yield
gelesen, als ich auf ein Beispielkapitel von C# in der Tiefe stieß: http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx.Wie ist es möglich, C# -Code nach der Kompilierung/Optimierung zu sehen?
Der erste Codeblock verwendet das Schlüsselwort yield
, um einen einfachen Iterator zu erstellen. Aber der zweite Codeblock zeigt diesen Code, nachdem der Compiler damit zurechtgekommen ist. Unter anderem hat es die yield
Anweisung in eine Zustandsmaschine explodiert.
Mehrere andere Beispiele für Code, der vom Compiler modifiziert wird, sind auf der Seite ersichtlich.
Meine Frage ist: War der Autor tatsächlich in der Lage, auf den Code nach der Kompilierung zuzugreifen, oder hat er abgeleitet, wie er aussehen würde?
Reflector ist dein Freund –
Die wirkliche Antwort auf diese Frage sollte "Allzu leicht!" –
Reflektor ist wirklich dein Freund. –