.NET 体系结构杂谈

我们不能独立的使用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运行库决定需要它时,就可以调用它(除非明确调用垃圾收集器)。但可以重写自己俄格过程,在代码中调用垃圾收集器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值