C# kompilerer ikke direkte til maskincode. Det kompilerer til IL (Intermediate Language) — en plattformuavhengig bytecode — som CLR kjører, ved å bruke JIT (Just-In-Time) kompilering for å oversette IL til native maskincode under kjøring. AOT (Ahead-Of-Time) er et alternativ som kompilerer til native code ved byggetid.
Kjørings-pipelinen
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
