Als «cil» getaggte Fragen

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.

7
Was ist der Zweck eines Stapels? Warum brauchen wir es?
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 …
320 c#  .net  vb.net  cil  .net-assembly 



5
Javas virtuelle Maschine und CLR
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" …

9
Den Inhalt einer C # -Methode dynamisch ersetzen?
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; } …
108 c#  methods  assemblies  cil  swap 

3
Warum führt diese (null ||! TryParse) Bedingung zur Verwendung einer nicht zugewiesenen lokalen Variablen?
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, …

4
Seltsame Leistungssteigerung im einfachen Benchmark
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 …

3
Was ist der Zweck von hidebysig in einer MSIL-Methode?
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?
92 cil 



19
Was ist der Zweck des CIL-NOP-Opcodes?
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 …
82 assembly  bytecode  cil 


2
Was macht beforefieldinit flag?
Was macht beforefieldinit flag? Wenn ich in die IL meiner Klasse schaue, sehe ich diese Flagge, aber ich weiß nicht, was diese Flagge tatsächlich tut?
81 .net  cil 

1
IntPtr in Int64 konvertieren: conv.u8 oder conv.i8?
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 …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.