.NET体系结构
C#语言不能孤立地使用,而必须.NET Framework一起考虑。C#编译器专门用于NET,这表明C#编写的所有代码总是在.NET Framework中运行
●C#的结构和方法论反映了.NET基础方法论。
●很多情况下,C#的特定语言取决于.NET的功能,或依赖于.NET基类。
1.C#与.NET的关系
C#就其本身只是一种语言,用于生成.NET环境的带按摩,但它不是.NET的一部分。
2.公共语言运行库
.NET Framework的核心是运行库执行环境,称为公共语言运行库(CLR)或.NET运行库。在CLR控制下运行的代码称为托管代码。
在.NET中,编译分为两个阶段:
❶把源代码编译为Microsoft中间语言(IL)。
❷CLR把IL编译为平台专用代码。
这两个编译过程非常重要,因为Microsoft中间语言是提供.NET的许多优点的关键(优点为:平台无关性、提高性能和语言的互操作性)。编译完成后,就可以在CLR中执行了。
3.中间语言
Microsoft中间语言(IL)在.NETFramework中起着非常重要的作用。
3.1面向对象和接口的支持
除了传统的面向对象编程外,中间语言还引入了接口的概念,在带有COM的Windows下第一次实现了接口。
3.2不同的值类型与引用类型
3.3强数据类型化
所有的变量都清晰的标记为属于某个特定数据类型。尽管强迫实现类型的安全性似乎会降低性能,但在许多情况下,我们从.NET提供的、依赖于类型安全的服务中获得很多好处:语言的互操作性、垃圾收集、安全性、应用程序域。
3.4通过异常处理错误
代码的某些领域可以看做是异常处理例程,每个例程都能处理某种错误情况。.NET提供了一种基础结构,一组.NET类来表示异常。
3.5特性的使用
4.程序集
程序集是编译好的。面向.NETFramework的代码的逻辑单元。程序集是完全自描述性的,它是一个逻辑单元而不是物理单元,可以存储在多个文件中。程序集一个重要特性就是它们包含的元数据描述了对应代码中定义的类型和方法。
4.1私有程序集
最简单的一种程序集。私有程序集一般附带在某个软件上,只能用于该软件。
4.2共享程序集
由于其他软件可以访问共享程序集,所以需要采取一定的保护措施来防止风险:名称冲突、不同版本及代码不兼容。
4.3反射
以编程访问存储在程序集中的元数据,称为反射。
4.4并行编程
5.NET Framework类
编写托管代码的最大好处就是可以使用.NET基类库。.NET基类库的一个主要优点是它们非常直观和易用。