C# kompileres ikke direkte til maskinkode. Det kompileres til IL (Intermediate Language) — en platformuafhængig bytecode — som CLR kører, ved brug af JIT (Just-In-Time) kompilering for at oversætte IL til oprindelig maskinkode ved kørselstid. AOT (Ahead-Of-Time) er et alternativ, der kompilerer til oprindelig kode på build-tid.
Eksekveringspipelinen
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
