可以看到,类型安全(type checker)、垃圾回收(garbage collector)、异常处理(exception manager)、向下兼容(com marshaler)、多线程支持(thread support)这些c#的特点都是由clr来提供的。clr最早被称为下一代windows服务运行时(ngws runtime),是直接建立在操作系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行。在.net 平台结构图中,clr的上面是.net的基类库(base class library,bcl),这组基类库包括了从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.net 平台结构图中也可以看到,基类库可以被各种语言调用和扩展,也就是说,不管是c#、vb.net还是vc++.net,都可以自由地调用.net的基类库。事实上, c#并没有属于自己的类库,它所使用的编程接口就是.net提供的基类库。所以,在决定使用c#时,真正需要费工夫学习的其实是.net框架的基类库:c#自身只有区区77个关键词,而且其语法对许多程序员来说都是他们非常熟悉的。bcl则相反,它包含了超过4500个以上的类和无数的方法、属性,在你的c# 程序中随时都可能会用到它来完成自己的任务。