1_C# 高级编程(第六版)学习笔记——第1章 .Net 体系结构

原创 2014年09月16日 15:35:39

声明:

  • 本博客为原创博客,主要讲述学习C# 高级编程(第六版)中的学习笔记,转载请声明出处。
  • 如有技术问题或需交流可直接联系本人邮箱:chuiwenwei@163.com
目录:
  1. C#与.Net的关系
  2. 公共语言运行库(CLR)
  3. 中间语言(IL)
  4. 程序集
1.C#与.Net的关系
  • C#是专门为.NET Framework设计的语言
  • C#本身就是一门语言,不是.NET的一部分。但C#语言是和.NET一起使用
  • C#在设计时就吸取了C++和JAVA的经验,是一种基于现代面向对象设计方法的语言
2.公共语言运行库(CLR)
  • .NET Framework的核心是其运行库的执行环境,称为公共语言运行库或.NET运行库。
  • 通常将在CLR控制下运行的代码称为托管代码
  • CLR在执行编译好的代码前要进行两个阶段:1.将源代码编译为Microsoft 中间语言(IL),2.CLR把IL编译为平台专用的代码
  • Microsoft的中间语言与Java字节代码一样都是低级语言。语法是使用数字代码可以很快转化为内部机器码。其设计造就了其的优点:平台无关性、提高性能和语言的互操作性
  • .NET的平台无关性暂时还只能使用与Windows平台,不过人们已经在积极准备使其可以应用于其他平台
  • VB2008,VC++2008,COM和COM+可以转化为中间语言
  • 托管C++比C#更优越的一点是可以在托管C++代码中调用非托管C++类,而不必采用COM交互功能
  • .NET集成了COM的互操作性,从而使托管代码可以调用COM组件,COM组件也可以调用托管代码
3.中间语言(IL)
  • 中间语言是面向对象编程和对接口的支持
  • 中间语言与其他编程语言一样提供了许多预定义的基本数据类型。它的一个特性就是值类型和引用类型有明显区别。对于值类型,变量保存其数据,对于引用类型,变量保存地址,对应的数据可以在该地址中找到。
  • 中间语言对数据存储的规范:引用类型的实例存储在托管堆的内存区域中,值类型存储在堆栈中
  • 中间语言的一个重要方面是它是基于强数据类型,所有的变量都清晰的标记为属于某个特定的数据类型
  • 通用类型系统(CTS)定义了可以在中间语言中使用的预定义数据类型,所有面向.NET Frameword的语言都可以生成最终基于这些类型的编译代码,比如C#的int映射为CTS中的Int32
  • 公共语言规范(CLS)和通用类型系统一起确保语言的互操作性。
  • .NET运行库采用的方法是垃圾收集器,这是一个程序,其目的是清理内存,方法是所有动态请求的内存都分配到堆上,当.NET检测到给定进程的托管堆已满,需要清理时,就调用垃圾收集器。垃圾收集器处理目前代码中的所有变量,检查对存储在托管堆上的对象的引用,确定哪些对象可以从代码中访问。没有应用的对象就不能再从代码中访问,因而被删除。
  • 垃圾收集器的一个重要方面是它的不确定性,不能保证什么时候会调用垃圾收集器。
4.程序集
  • 每个程序在运行时,Windows通过地址空间把进程分离开来,这样每个进程就有4G的虚拟内存来存储其数据和可执行代码。Windows利用额外的间接方式把这些虚拟内存映射到物理内存或磁盘空间的一个特殊区域中。
  • 任何进程都只能通过虚拟内存汇总的一个地址来访问内存,不能直接访问物理内存

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《csharp高级编程》 学习笔记 第一章 .net 体系结构

第一章 .net 体系结构 几个概念: 1.Microsoft Intermediate Language,MSIL或简称IL。 2.Common Type System,CTS通用类型系统...
  • wuyanyi
  • wuyanyi
  • 2011年10月02日 00:13
  • 629

C#高级编程笔记之.NET体系结构

 .NET Framework的核心是CLR,在CLR控制下的代码称为托管代码。1. 在.NET中编译分为两个阶段:(1) 把源代码编译为IL.   (2) CLR把IL编译为平台专用代码.2. 托管...

读《C#高级编程》第1章 .Net机构体系笔记 网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但 是做事情很能坚持。 本章主要是了解.Net的结构,都是一些概念,并没有可

读《C#高级编程》第1章 .Net机构体系笔记 网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但 是做事情很能坚持。   本章主要是了解.Net的结构,都是一些概念,并没有可...

《C#入门经典》第六版 学习笔记之第十章 定义类成员(1) 10.1成员的定义~10.2类成员的其他方法

10.1 成员的定义 在类一种,也提供该类所有成员的定义——字段、属性、方法。所有成员都有自己的访问级别(可以对比类的访问级别): public——成员可以由任意代码访问。 private——成员只能...
  • lzh3312
  • lzh3312
  • 2014年01月26日 02:10
  • 722

《C#入门经典》第六版 学习笔记之第十章 定义类成员(1) 10.3 接口的实现~10.5 部分类方法定义

10.3 接口的实现 1、如何定义和实现接口? interface I {     //interface members. } 2、接口成员的定义与类成员的定义相似,但有个重要区别: ...
  • lzh3312
  • lzh3312
  • 2014年01月26日 02:14
  • 702

【C++】学习笔记十四——C++ primer plus第六版第4章编程练习

1. //4.13编程练习 1 #include #include int main() { using namespace std; enum grade {A, B, C, D}...
  • budf01
  • budf01
  • 2016年12月02日 21:15
  • 4564

C#读书笔记(3)-.NET体系结构

.NET体系结构 C#语言不能孤立地使用,而必须.NET Framework一起考虑。C#编译器专门用于NET,这表明C#编写的所有代码总是在.NET Framework中运行 ●C#的结构和方法论...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1_C# 高级编程(第六版)学习笔记——第1章 .Net 体系结构
举报原因:
原因补充:

(最多只允许输入30个字)