2013-03-31 32 views
7

Gibt es eine Möglichkeit, die kompilierte Code-Ausgabe aus dem Visual Studio selbst zu sehen. Ich weiß, dass wir eine Reflektorsoftware verwenden können und den Code sehen können. aber ich möchte nur den Compiler-Code während der Programmierung im Visual Studio sehen. So kann ich anhand des Ausgabecodes entscheiden, welcher Code für bestimmte Aufgaben am besten geeignet ist.Visual Studio Kompilierter Code

Hinweis: Unterstützung für C# wäre genug für mich.

Aktualisiert:


I Intermediate Language (IL) Ausgabe des C# -Code zu sehen.

+1

Gibt es eine bestimmte Sprache/Compiler-Ausgabe? – Oded

+0

Was meinst du mit kompiliertem Code? Maschinencode, Code nach der Vorverarbeitung, noch etwas? – Tushar

+0

Unterstützung für C# wäre genug für mich –

Antwort

13

Angenommen, Sie sprechen nicht über .NET-Sprachen (C#, VB.NET, F # etc ...), können Sie mit dem disassembly window:

Die Demontage Fenster zeigt Assembler-Code den Anweisungen entsprechend erstellt vom Compiler. Wenn Sie verwalteten Code debuggen, entsprechen diese Assemblyanweisungen dem systemeigenen Code, der von dem Just-in-Time (JIT) Compiler erstellt wird, nicht der Microsoft-Zwischensprache (MSIL), die von dem Visual Studio-Compiler generiert wird.


Wenn aber Sie sprechen IL sehen für .NET-Sprachen - ILDASM es Ihnen zeigen können, wie höchst Disassembler (wie Reflector). Viele von ihnen zeigen Ihnen ihre C#/VB.NET Interpretation der IL standardmäßig, aber Sie können immer die IL direkt anzeigen.

Einige von diesen haben auch Visual Studio Add-Ons/Erweiterungen, mit denen Sie die Disassemblierung direkt in Visual Studio sehen können (Reflector und Resharper werden dies tun).

+0

+1 für Reflektor und Neuformung –

+0

Ich installierte Reflektor 8 Erweiterung zu Visual Studio 2013 Professional, aber es zeigt nicht CIL-Code. Es zeigt C# -Code von importierten Paketen. Vielleicht ist es möglich, CIL-Code direkt in Visual Studio anzuzeigen, aber ich kann diese Option nicht finden? –

+0

Gibt es eine Möglichkeit zu sehen, wie _syntactic sugar_ nach der Erstellung aussieht? Zum Beispiel: 'var n = 1 'würde in' int n = 1 'oder' obj? .prop 'kompiliert in' if (obj! = Null)? obj.prop: null' –