C# se ne prevaja neposredno v strojni kod. Prevaja se v IL (Intermediate Language) — neodvisen od platforme bytecode — katerega izvršava CLR, pri čemer uporablja JIT (Just-In-Time) prevajanje za prevajanje IL v nativni strojni kod med izvajanjem. AOT (Ahead-Of-Time) je alternativa, ki prevaja v nativni kod ob času gradnje.
Cevovod izvršavanja
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
