接下来这些日子,我们将逐步学习C#语言编程。我们将这个过程分为5部分去学习与探讨。
这一章,我们学习第一部分内容C#语言;
首先我们先讲解一下C#语言的.NET体系结构。
我们知道C#是在.NET Framework中运行,所以对于C#语言来说,它有以下两个特点:
- C#的结构和方法论反应了.NET基础方法论。
- 在许多情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET基类。
接下来我们将阐述Microsoft中间语言(Microsoft Inermediate Language, MSIL 或 IL),所有编译好的代码都要使用这种语言。
通用类型系统(Common Type System, CTS).
公共语言规范(Common Language Specification,CLS)如何提供.NET语言件的互操作性。
C#与.NET的关系:
- C#是专门为Microsoft的.NET Framework一起使用而设计的。
- C#是一种基于现代面向对象设计方法的语言,在设计C#时,Microsoft还吸取了其他类似语言的经验,这些语言是近期面向对象规则得到广泛应用后才开发出来的。
- C#是一种语言,尽管它是生成面向.NE环境的代码,但它本身不是.NET的一部分。
在.NET中,编译分为两个阶段:
- 把源代码编译为Micosoft中间语言(IL);
- 公共语言运行库(CLR)把IL编译为平台专用的代码。
通常我们将在CLR控制下运行的代码称为托管代码(managed code),特点:
- 平台无关;
- 提高性能;
- 语言的互操作性;
中间语言的主要特征:
- 面向对象和使用接口;
- 值类型和引用类型之间的巨大差别;
- 强数据类型;
- 使用异常来处理错误;
- 使用特点(attribute).
程序集:
- 私有程序集---- 一般附带在某些软件上,且只能用于该软件中。
- 共享程序集--- 的其他应用程序可以使用的公共库。
发射:因为程序集存储了元数据,包括在程序集中定义的所有类型和这些类型的成员的细节,所以可以编程访问这些元数据,我们称这个技术为发射。
.NET Framework 类;
- .NET基类的一个优点是直观易用。
空间命名: 是.NET避免类名冲突的一种方式。
总的来说,.NET具有下述特性在编译和执行过程中的作用:
- 程序集和.NET基类;
- JIT编译;
- 应用程序域;
- 垃圾收集.