Code from Common Language Interface(CLI) Languages like (C#, VB.NET) are compiled into Common Intermediate Language(CIL) assemblies which are stored in a portable executable file.
When the PE file is executed The CLR interpreters the CIL code into machine language for the operating system as the program executes.
This allows components written different languages to interact. It also facilitates object oriented programming features, multithreading, and garbage collection.