C#与.NET的关系
C#是一种相当新的编程语言,C#的重要性体现在以下两个方面:
· 它是专门为Microsoft的,NET Framework一起使用而设计的(.NET Framework是一个功能常
丰富的平台,可开发、部署和执行分布式应用程序)。
· 它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft还吸取了其他所有类似语
言的经验,这些语言是近20 年来面向对象规则得到广泛应用后才开发出来的。
.NET FrameWork的核心是其运行库执行环境,称为公共语言运行库(CLR)或.NET运行库。通常
将在CLR控制下运行的代码称为托管代码(managed code)。
但是,在CLR执行编写好的源代码(在C#中或其他语言中编写的代码)之前,需要编译它们。
在.NET中,编译分为两个阶段:
(1)把源代码编译为Microsoft中间语言(IL)。
(2)CLR把IL编译为平台专用的代码。
这个两阶段的编译过程非常重要,因为Microsoft中间语言是提供.NET的许多优点的关键。
Microsoft中间语言与Java字节码共享一种理念:它们都是低级语言,语法很简单(使用数字代
码,而不是文本代码),可以非常快速地转换为本地机器码。对于代码,这种精心设计的通用语法有
很重要的优点:平台无关性、提高性能和语言的互操作性。
垃圾回收器(garbage collector)用来在.NET中进行内存管理,特别是它可以恢复正在运行的应
用程序需要的内存。到目前为止,Windows平台己经使用了两种技术来释放进程向系统动态请求
的内存:
· 完全以手工方式使应用程序代码完成这些工作。
.让对象维护引用计数。
.NET运行库采用的方法是垃圾回收器,这是一个程序,其目的是清理内存。方法是所有动态请
求的内存都分配到堆上(所有的语言都是这样处理的,但在.NET中,CLR维护它自己的托管堆,
供,NET应用程序使用)。每隔一段时间,当.NET检测到给定进程的托管堆已满,需要清理时,就调
用垃圾回收器。垃圾回收器处理目前代码中的所有变量,检查对存储在托管堆上的对象的引用,确
定哪些对象可以从代码中访问—— 即哪些对象有引用。没有引用的对象就不再认为可以从代码中访
问,因而被删除。Java就使用与此类似的垃圾回收系统。
程序集
程序集(assembly,是包含编译好的、面向,NET FmmeWork的代码的逻辑单元。