C# ne compile pas directement en code machine. Il compile en IL (Intermediate Language) — un bytecode indépendant de la plateforme — que le CLR exécute, en utilisant la compilation JIT (Just-In-Time) pour traduire l'IL en code machine natif au moment de l'exécution. AOT (Ahead-Of-Time) est une alternative qui compile en code natif au moment de la construction.
Le pipeline d'exécution
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
