C# se ne kompajlira izravno u strojni kod. Kompajlira se u IL (Intermediate Language) — platformski neovisni bytecode — koji CLR izvršava koristeći JIT (Just-In-Time) kompilaciju za provjeru IL koda u nativni strojni kod tijekom izvršavanja. AOT (Ahead-Of-Time) je alternativa koja kompajlira u nativni kod tijekom vremena izgradnje.
Izvršni protok
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
