the code is compiled, the compiler translates your code into Microsoft
intermediate language (MSIL). The common language runtime includes a JIT
compiler for converting this MSIL then to native code.
MSIL(Microsoft intermediate Language) contains metadata that is the key to cross language interoperability. Since
this metadata is standardized across all .NET languages, a program written in
one language can understand the metadata and execute code, written in a
different language. MSIL includes instructions for loading, storing,
initializing, and calling methods on objects, as well as instructions for
arithmetic and logical operations, control flow, direct memory access,
exception handling, and other operations.