微软把会产生中间码的语言所写的代码称为托管代码。
托管代码实际上就是中间语言(IL)代码.代码编写完毕后进行编译,此时编译器把代码编译成中间语言,而不是能直接在计算机上运行的机器码。程序集(Assembly)的文件负责封装中间语言,程序集中包含了描述所创建的方法、类以及属性的所有元数据。
托管代码在公共语言运行时(CLR)中运行。这个运行时给运行代码提供了多种服务。通常来说,CLR可以加载和验证程序集,并以此来保证中间语言的正确性。当某些方法被调用时,CLR会把具体的方法编译成适合本地计算机运行的机器码,并且将编译好的机器码缓存起来,以备下次调用时使用。这个过程就是即时编译。
总而言之,托管代码是公共语言运行时执行的代码,而不是由操作系统直接执行。托管代码也可以调用CLR的运行时服务和功能,比如垃圾回收机制GC,类型检查,安全支持等。这些服务和功能提供独立于开发语言的、统一的 Managed Code 应用程序行为。