C# nekompiliuojamas tiesiogiai į mašininį kodą. Jis kompiliuojamas į IL (Intermediate Language) — platformai nepriklausomą baitą kodą — kurį vykdo CLR, naudodamas JIT (Just-In-Time) kompiliavimą IL vertimui į natyvų mašininį kodą vykdymo metu. AOT (Ahead-Of-Time) yra alternatyva, kuri kompiliuoja į natyvų kodą statybos metu.
Vykdymo konvejeris
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
