c#

位置:IT落伍者 >> c# >> 浏览文章

.NET 体系结构杂谈


发布日期:2019年07月03日
 
.NET 体系结构杂谈

我们不能独立的使用C#语言而必须和net framework 一起考虑C#编译器专门用于net 这表示用C#编写的所有代码总在net Framework 中运行对于C#语言来说可以得出两个重要的结论

C#的结构和方法论反应了net的基础方法论

在许多的情况下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中编译 分为两部分

把源代码编译为Microsoft 中间语言(IL)

CLR把IL编译为平台专用代码

托管代码的优点

他们是一种低级语言语法很简单(使用数字代码而不是文本代码)可以非常快速的转换为内部机器码

平台无关性(编译为中间语言就可以获得NET平台无关性)

提高性能()

语言的互操作性(将任何一种语言编译为中间代码)

中间语言

中间语言特征

面向对象和使用接口

值类型和引用类型之间的巨大差别

强数据类型

使用异常来处理错误

使用特性

强数据类型

中间语言的一个重要方面是它基于强数据类型

我们从net提供的依赖于类型安全的服务站获得的好处更多这些服务包括

语言的互操作性

垃圾收集

安全性

应用程序域

IL(中间语言)是区分大小写的

垃圾收集处理目前代码中所有变量检查对存储在托管堆上的对象的引用确定哪些对象可以从代码中访问——即哪些对象有引用没有引用的对象就不能再从代码中访问因而被删除

垃圾收集器的一个重要方面是他是不确定换言之不能保证什么时候会调用垃圾收集器net运行库决定需要它时就可以调用它(除非明确调用垃圾收集器)但可以重写自己俄格过程在代码中调用垃圾收集器

上一篇:Reflector(.Net的Dll反编译工具)

下一篇:C#中if语句基础学习