MSIL is stands for microsoft intermediate Language. Our Code is first convert into MSIL code automatically then it transfered to CLR and then CLR convert it into Native code .Which is understandable by Machine. Now a Question is rise why Code in first convert into MSIL and after then into Native code. Because we want to take maximum advantage of .Net facilites . When our code convert into MSIL code then it checks its Memory management(Resource Management),Obj life Management,Reflections and Type Checks.Which make the developer's life easy. MSIL code is machine independent.