说到C#,我们不得不谈到.NET,因为C#不仅仅是面向对象的语言,最重要的的是它必须面向.NET,脱离了.NET平台它将无法使用。要了解系统、.NET平台、和C#的关系我们必须先看下图(图片搜藏来自于网络).
从上边的结构图中,我们能够很明显地看出来windows操作系统为我们提供API和COM服务以及驱动程序,接着是.NET框架的核心CLR,CLR被译为公共语言运行时。如果把语言看做是人,CLR就是人的社会环境它也类似于JAVA中的虚拟机(JVM).主要是用来管理托管代码,将CIL编译为本地机器代码以及对内存的分配和回收。然后是框架类库以及基类库,最后是我们比较重要的CTS,CLS,这二者都是为面向.NET框架的语言提供互操作性。语言的互操作性是指:
1.不同语言编写的类应能继承用另一种语言编写的类2.不同语言的类能够相互包含彼此的实例3.不同语言的对象能够相互调用4.对象/引用能在方法间传递5.不同语言能够交替调试