C# wird nicht direkt zu Maschinencode kompiliert. Es wird zu IL (Intermediate Language) — ein plattformunabhängiger Bytecode — kompiliert, den die CLR ausführt und dabei JIT (Just-In-Time) Kompilierung nutzt, um IL zur Laufzeit in nativen Maschinencode zu übersetzen. AOT (Ahead-Of-Time) ist eine Alternative, die zur Build-Zeit zu nativem Code kompiliert.
Die Ausführungs-Pipeline
C# source (.cs)
│ C# compiler (roslyn)
▼
IL bytecode (in a .dll/.exe assembly) ← platform-INDEPENDENT intermediate code
│ CLR loads it; JIT compiles IL → native code AT RUNTIME (per method, as called)
▼
Native machine code → executes on the CPU
