لا يقوم C# بالترجمة المباشرة إلى كود الآلة. بدلاً من ذلك، يتم تجميعه إلى IL (لغة وسيطة) — وهي bytecode مستقلة عن المنصة — والتي يقوم CLR بتشغيلها، باستخدام JIT (ترجمة في الوقت المناسب) لترجمة IL إلى كود الآلة الأصلي في وقت التشغيل. AOT (الترجمة قبل التشغيل) هو بديل يقوم بترجمة الكود إلى code أصلي في وقت البناء.
خط أنابيب التنفيذ
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
