Un programma scritto in C#, prima di poter essere eseguito, deve essere convertito in un linguaggio intermedio, chiamato appunto CIL (Common Intermediate Language) o IL (Intermediate Language), indipendente dalla CPU e dal linguaggio stesso (anche Visual Basic verrà convertito nel medesimo IL) che è comprensibile dal CLR.
L’Intermediate language è una sorta di linguaggio macchina, ma di livello molto più alto, in quanto possiede anche caratteristiche di linguaggio orientato agli oggetti, funzioni per l’utilizzo di array e per la gestione degli errori.
Se si vuol visualizzare il codice IL prodotto da un programma C# è possibile utilizzare il disassemblatore ILDasm messo a disposizione degli sviluppatori, basta lanciare da un prompt dei comandi di Visual Studio, il comando ildasm.exe, dandogli in pasto un assembly prodotto da una normale compilazione di un programma C#, per esempio:
c:\il>csc helloworld.cs c:\il>ildasm /output=helloworld.il helloworld.exe

Con lo stesso ILDasm, che ha una sua interfaccia grafica, è possibile aprire assembly esistenti e disassemblarli.
questo e altro all’interno di
Programmare con C# 7, guida completa
