Common Intermediate Language ist die objektorientierte Assemblersprache, die von .NET Framework und Mono verwendet wird. .NET-Sprachen werden nach CIL kompiliert, das zu einem Objektcode zusammengefügt wird, der ein Bytecode-Format aufweist.
Ich habe den folgenden Code
%Vor%
Das aus dem obigen Code generierte MSIL lautet:
%Vor%
Ich habe folgende Fragen:
Warum der try-catch wieder im try-Block enthalten ist.
Es sieht so aus, als ob leave.s die letzte Zeile in try und c...
Ich habe ein bisschen mit dem MSIL-Decompiler - ILDASM gespielt und versucht, eine einfache .NET-Methode zu dekompilieren.
Die Opcodes sahen irgendwie so aus:
%Vor%
Was ich mich wundere ist - sind diese Opcodes atomar? Ist es in einem prä...
Ich versuche zu verstehen, wie eine While-Schleife in IL aussieht. Ich habe diese C # -Funktion geschrieben:
%Vor%
Die IL sieht so aus:
%Vor%
In den meisten Fällen ist das wirklich einfach, außer für den Teil nach cgt.
Was ich nicht v...
Ich frage mich, ob es im Zusammenhang mit der Disassemblierung von .Net-Code (Redgate .Net-Reflektor usw.) sicherer ist, Ihren Code unter Verwendung von Ngen auf nativ zu kompilieren? Das heißt, bedeutet das, dass jemand jetzt IDA- und ASM-Fähig...
Ich erstelle einen Compiler, der auf .NET abzielt, und ich habe CIL vorher direkt generiert, aber das Erzeugen von DLR-Bäumen wird mein Leben erheblich erleichtern. Ich unterstütze ein paar dynamische Features, nämlich die Erstellung von Runtime...
Ich habe eine seltsame Leistungseinbuße bekommen, die ich auf diesen Code reduziert habe:
%Vor%
Der Unterschied zwischen add und add1 ist der zusätzliche () am Ende.
Wenn ich es als x64 Release Build mit F # 3.1 auf .NET 4.5.1 er...
(Zunächst einmal ist dies ein sehr langer Post, aber keine Sorge: Ich habe bereits alles implementiert, ich frage nur nach Ihrer Meinung oder nach möglichen Alternativen.)
Ich habe Probleme bei der Implementierung des Folgenden; Ich würde etw...
Ich habe den folgenden C # -Code.
%Vor%
Erzeugt die folgende CIL
%Vor%
Nun, was ich nicht verstehe, ist die Linie bei Offset 0001:
ldarg.0
Ich weiß, wofür dieser Opcode ist, aber ich verstehe nicht wirklich, warum er in dies...
Der erste .NET-Code wird nach MSIL kompiliert und dann von JIT in maschinenabhängigen Code konvertiert. Kann jemand mir sagen, was alle Vorteile wegen der 2-Schritt-Compilation bekommen. Danke
Ich habe einen Artikel über String.Empty vs "" gelesen und teste mich auch selbst. Unterschiedlich zwischen ihnen sind unten.
String.Empty
%Vor%
""
%Vor%
Nachdem ich mit meinen Freunden gesprochen habe, argumentieren sie, dass String....