1 .NET基础
.NET Framework是Microsoft的代码开发平台。包括一个公共类型系统(CTS)和一个公共语言运行库(CLR/CoreCLR)。.NET Framework应用程序使用面向对象编程(OOP)的方法论编写,通常包含托管代码。托管代码的内存管理由.NET运行库处理,其中包含垃圾回收。
1.1 托管代码
在将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR的任务尚未完全完成,还需要管理正在执行的用.NET编写的代码(这个执行代码的阶段称为运行时runtime)。即CLR管理着应用程序,其方式是管理内存(如垃圾回收)、处理安全性、以及允许跨语言调试等。(在C#中,只能编写在托管环境下运行的代码)
1.2 垃圾回收
确保应用程序不再使用某些内存时,就会完全释放这些内存。.NET垃圾回收会定期检查计算机的内存,从中删除不再需要的内容。执行垃圾回收的时间并不固定,可能一秒钟会进行数千次的检查,也可能每几秒钟才检查一次,不过一定会进行检查。(提示:需要许多内存才能运行的代码应自行完成清理工作,而不是坐等垃圾回收。)
2 .NET 应用程序
用.NET编写的应用程序,首先在第一阶段编译为通用中间语言代码(CIL);第二阶段,在执行应用程序时,编译器(Just-In-Time,JIT)把CIL编译为专用于OS和目标机器架构的本机代码。(应用程序编译后把不同的部分链接到包含CIL的程序集中。)
2.1 程序集
编译应用程序时,所创建的CIL代码存储在一个程序集(assembly)中。程序集包括可执行的应用程序文件(可以直接在Windows上运行的.exe文件)、其他应用程序使用的库(.dll文件)、元数据(程序集中包含的数据的信息)和一些可选资源(声音文件和图片等)。
2.2 链接
编译为CIL的C#代码未必包含在一个单独文件中,可以把应用程序代码放在多个源代码文件中,再把它们编译到一个单独的程序集中。这个过程称为链接(linking)。
3 C#基础
C#是包含在.NET中的一种语言,可用于编写任意应用程序,包括Web应用程序、跨平台应用程序、桌面应用程序和WCF服务。