Η C# δεν μεταγλωττίζεται απευθείας σε κώδικα μηχανής. Μεταγλωττίζεται σε IL (Intermediate Language) — ένα ανεξάρτητο από την πλατφόρμα bytecode — το οποίο εκτελεί το CLR, χρησιμοποιώντας JIT (Just-In-Time) μεταγλώττιση για τη μετάφραση του IL σε εγγενή κώδικα μηχανής κατά την εκτέλεση. Το AOT (Ahead-Of-Time) είναι μια εναλλακτική που μεταγλωττίζει σε εγγενή κώδικα κατά το χρόνο κατασκευής.
