Common Intermediate Language ist die objektorientierte Assemblersprache, die von .NET Framework, .NET Core und Mono verwendet wird. .NET-Sprachen werden zu CIL kompiliert, das zu einem Objektcode im Bytecode-Format zusammengesetzt wird.
Ich lerne gerade MSIL, um zu lernen, wie ich meine C # .NET-Anwendungen debugge. Ich habe mich immer gefragt: Was ist der Zweck des Stapels? Um meine Frage in einen Zusammenhang zu bringen: Warum erfolgt eine Übertragung vom Speicher zum Stapel oder "Laden"? Warum gibt es andererseits eine Übertragung vom …
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
Ich habe zufällig entdeckt, dass der C # -Compiler diese Methode umdreht: static bool IsNotNull(object obj) { return obj != null; } … In diese CIL : .method private hidebysig static bool IsNotNull(object obj) cil managed { ldarg.0 // obj ldnull cgt.un ret } … Oder wenn Sie lieber dekompilierten …
Als eine Art Antwort auf die Frage namens Unterschiede zwischen MSIL und Java-Bytecode? Was sind die (Haupt-) Unterschiede oder Ähnlichkeiten in der Funktionsweise der Java Virtual Machine im Vergleich zur Funktionsweise der Java Virtual Machine?.NET Framework Common Language Runtime (CLR) funktioniert? Auch ist das .NET Framework CLR eine "virtuelle Maschine" …
Ich möchte ändern, wie eine C # -Methode beim Aufruf ausgeführt wird, damit ich so etwas schreiben kann: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n == 0) return false; return true; } …
Der folgende Code führt zur Verwendung der nicht zugewiesenen lokalen Variablen "numberOfGroups" : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } Allerdings funktioniert dieser Code in Ordnung (obwohl, ReSharper , sagt der = 10überflüssig ist): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, …
Gestern habe ich einen Artikel von Christoph Nahr mit dem Titel ".NET Struct Performance" gefunden, in dem mehrere Sprachen (C ++, C #, Java, JavaScript) für eine Methode verglichen wurden, die zwei Punktstrukturen ( doubleTupel) hinzufügt . Wie sich herausstellte, dauert die Ausführung der C ++ - Version etwa 1000 …
Mit ildasm und einem C # -Programm, z static void Main(string[] args) { } gibt: .method private hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Program::Main Was macht das hidebysig-Konstrukt?
Was ist die Erklärung für das Ergebnis der folgenden Operation? k += c += k += c; Ich habe versucht, das Ausgabeergebnis aus dem folgenden Code zu verstehen: int k = 10; int c = 30; k += c += k += c; //k=80 instead of 110 //c=70 und derzeit …
In vielen MSIL-Listen habe ich Folgendes beobachtet: System.Nullable`1<!0> etc ... oder class !0 etc ... Was bedeutet das unter !0diesen Umständen?
Ich gehe durch MSIL und stelle fest, dass die MSIL viele NOP- Anweisungen enthält. Der MSDN-Artikel besagt, dass sie keine Maßnahmen ergreifen und verwendet werden, um Speicherplatz zu füllen, wenn der Opcode gepatcht ist. Sie werden in Debug-Builds viel häufiger verwendet als in Release-Builds. Ich weiß, dass diese Art von …
Ich arbeite an einer ILGeneratorErweiterung, mit deren Hilfe IL-Fragmente ausgegeben werden können Expression. Alles war in Ordnung, bis ich am Integer-Konvertierungsteil arbeitete. Es gibt etwas, das mir wirklich nicht intuitiv ist, wie: Verwenden Sie conv.i8zum Konvertieren Int32inUInt64 Verwenden Sie conv.u8zum Konvertieren UInt32inInt64 Sie sind alle, weil der Evaluierungsstapel die Ganzzahlsignatur …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.