一、C#与.Net 的关系
1)C#语言
1. C#是一种简洁、类型安全的面向对象语言,可以使用C#语言创建可以在.Net Framework上运行的应用程序
2. C# 语言功能取决于.Net 的功能,依赖于.Net 基类。也就是C#编写的代码使用.Net Framework运行。
3. C#只是用于生成.Net 环境的代码,但本身不是.Net 的一部分
2).Net 平台
1. .Net Framework的核心是运行库执行环境(CLR)
2. C#源码首先需要编译成Microsoft中间语言(IL),运行库环境(CLR)将中间语言编译成平台专用的代码。
3. IL编译即时编译(JIT),并不是将整个应用程序都一次性编译完(这样启动时间会很长),它只编译他调用的那部分代码
4.IL编译成的中间语言使它能支持平台无关性
5.IL还支持语言互操作。就是任何一种语言编译为中间语言之后,可以与其他语言编译过来的中间语言进行交互。一种语言编写的类可以直接与另一种语言编写的类进行通信
3).Net 支持的语言:
VB.Net(Visual Basic 6 以前不适合)、Visual C++ 6、F#
4)语言之间的互操作实现
数据类型:
.Net 中使用通用类型系统(CTS)定义了中间语言中使用的预定义数据类型,所有面向.Net Framework的语言都可以生成基于这些类型的编译代码
如:VB语言中的Integger类型映射到中间语言为Int32,C#语言使用int来表示Int32
公共语言规范(CLS):
CLS 是一个最低标准集,所有面向.Net 的编译器都必须支持它。
二、面向.Net 的所有语言都需要支持的IL特征:
1.支持面向对象可以使用接口。
2.值类型和引用类型的区别
1)值类型直接在栈内存存储数据
2)引用类型在堆内存存放地址,通过地址来找到对应的数据
3. 强数据类型
4.使用异常处理错误
5. 使用特性(attribute)
三、程序集
1. 程序集(assembly)是包含编译好的,面向.Net Framework的代码逻辑单元
2. 反射
程序集存储了元数据,元数据中包含了程序集中定义的所有类型和类型的成员细节,可以通过反射访问这些元数据
四、.Net 4.5 基类
- IL提供的核心功能(CTS中的基本数据类型等)
- Windows UI支持和控件
- ASP.NET 的Web窗体和MVC
- ADO.Net 和XML进行数据访问
- 文件系统和注册表访问
- 网络和Web浏览
- .Net特性和反射
- COM互操作性