我们不能独立的使用C#语言,而必须和.net framework 一起考虑。C#编译器专门用于.net 这表示用C#编写的所有代码总在.net Framework 中运行。对于C#语言来说,可以得出两个重要的结论:
1.C#的结构和方法论反应了.net的基础方法论
2.在许多的情况下,C#的特定语言功能取决于.net的功能,或者依赖于.net的基类
Microsoft 中间语言(Microsoft INtermediate Langiage) 简称 MSIL 或者 IL
通用类型系统(Common Type System)简称 CTS
公共语言规范(Common Language Specification)CLS
C#与.NET的关系
C#是专门与Microsoft的.net framework 一起使用而设计的。
C#是一种基于现代面向对象设计方法的语言。
C#就其本身而言只是一种语言,尽管它是用于生成面向.net环境的代码,但它本身不是.net的一部分。
.NET 支持的一些特性,C#不支持。而C#支持的另一些特性,而.net不支持(如运算符重载)
公共语言运行库
.net Framework 的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.net 运行库。
通常将在CLR的控制下运行的代码称为托管代码(managed code)
在.net中编译 分为两部分:
1.把源代码编译为Microsoft 中间语言(IL)
2.CLR把IL编译为平台专用代码
托管代码的优点:
他们是一种低级语言,语法很简单(使用数字代码,而不是文本代码),可以非常快速的转换为内部机器码。
1.平台无关性(编译为中间语言就可以获得.NET平台无关性)
2.提高性能()
3.语言的互操作性(将任何一种语言编译为中间代码)
中间语言
中间语言特征:
1.面向对象和使用接口
2.值类型和引用类型之间的巨大差别
3.强数据类型
4.使用异常来处理错误
5.使用特性
强数据类型
中间语言的一个重要方面是它基于强数据类型。
我们从.net提供的,依赖于类型安全的服务站获得的好处更多,这些服务包括
1.语言的互操作性
2.垃圾收集
3.安全性
4.应用程序域
IL(中间语言)是区分大小写的
垃圾收集:处理目前代码中所有变量,检查对存储在托管堆上的对象的引用,确定哪些对象可以从代码中访问----即哪些对象有引用,没有引用的对象就不能再从代码中访问,因而被删除。
垃圾收集器的一个重要方面是他是不确定。换言之,不能保证什么时候会调用垃圾收集器:.net运行库决定需要它时,就可以调用它(除非明确调用垃圾收集器)。但可以重写自己俄格过程,在代码中调用垃圾收集器。
.NET 体系结构杂谈
最新推荐文章于 2025-01-06 15:42:39 发布