(1)通用语言规范(Common Language Specification,CLS)。.NET系统包括C#、C++、VB、J#,它们都遵守通用语言规范。任何程序设计语言只要遵守通用语言规范,其源程序都可编译为相同的中间语言代码,由CLR负责执行,这样的代码叫托管代码。只要为其他操作系统编制相应的CLR,中间语言代码也可在其他系统中运行。 (2)自动内存管理。CLR内建垃圾收集器,当堆中实例的生命周期结束时,垃圾收集器负责收回不被使用的实例占用的内存空间。也就是说,CLR具有自动内存管理功能。而c和c++语言,用语句在堆中建立的实例,必须用语句释放实例占用的内存空间。 (3)交叉语言处理。由于任何遵守通用语言规范的程序设计语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件可以互相通用,可以从其他语言定义的类派生出本语言的新类。由于中间语言代码由CLR负责执行,因此异常处理方法是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。