c sharp圣经 version 5读书笔记 第一章

序言

 

书中探讨了C#语言和.net平台的各种特性:重载运算符、指针、泛型等高级功能和CIL、远程处理、windows forms、asp.Net、ado.net等技术

新版更透彻阐述了C#2010和.NET4新功能,包括动态语言运行时,任务并行库,ADO.NET实体框架,拓展的WPF API以及改进的COM互操作

同时也介绍了.NET 3.0,.NET 3.5,.NET 4中的新编程API,包括WPF,WCF和WF的功能;另外,还介绍了最新的C#2010编程语言,DLR,TPL,LINQ编程技术,COM与.NET的互操作性以及平台无关的.net开发等。

.net相关的构建块:CLR(公共语言运行库)、CTS(公共类型系统)、CLS(公共语言规范)以及基础类库

       编译C#源代码文件:用命令行编译器(csc.exe)和C#响应文件,许多代码编辑器和IDE:Notepad++,SharpDevelop,Visual C#2008Express, Visual Studio 2010,如何通过在本地安装.NET            Framwork  4 SDK文档来配置自己开发用的电脑

       Web应用,GUI桌面应用,大妈哭和Windows服务 ,运行时异常,.NET的垃圾回收服务

       CIL:公共中间语言(IL,MSIL是一个意思)

元数据:元数据详细描述了二进制文件中每一个“类型”的特征

清单:程序集本身也使用元数据进行描述,这类元数据的正式名称就叫清单。清单记录了程序集的当前版本信息,文化信息(用于本地化字符串和图像资源)和正确执行所需的外部引用程序集的列表。

程序集:当用.net支持的编译器生成.dll或者.exe文件时,二进制大对象会被打包成一个程序集,程序集包含CIL代码

单文件程序集:是一个独立,单一且定义明确的包,这个包中包含所有必须的CIL,元数据和相关的程序集清单。

多文件程序集的概念:一个dll或exe相当于一个模块,其中一个主模块一定包含程序集清单,其他的相关模块包含一个模块级的程序集清单,CIL和类型元数据

 

Ildasm.exe可以打开程序集

NET跨平台,可以用自己喜欢的语言写程序:C#,C++,F#等

中间代码CIL必须在使用前即时翻译成不同型号的CPU代码利用JIT(即时)编译器,

 

 

第一章

 

       1. 元数据的作用:各种对象浏览工具,调试工具以及C#编译器自身都使用元数据,.net的许多技术包括WCF,反射,晚期绑定和对象序列化。

       2. 程序集清单的作用:清单记录了所有确保现有程序集正常工作的外部程序集,程序集的版本号,版权信息等→同类型元数据一样,生成清单也是编译器的工作。

       3. net的类型:集合{类,接口,结构,枚举,委托}里的任意一个成员

       4. CTS:公共类型系统;规定了类型必须如何定义才能被CLR承载(定义了由3的5种类型)  注:只有那些创建针对.net平台的工具或编译器的人才对CTS的内部工作非常关心。

a. 类可能由很多成员(诸如构造函数属性,方法和事件)和数据(字段)组成用Class字段声明

b. 接口就是由抽象成员定义所著称的一个具名集合,通过一个给定的类或结构来实现,用interface关键字定义。一般情况下,所有的.net接口均以大写字母I开头

c. 结构:最适合建模几何和数学数据,跟类差不多的。struct

d. 枚举类型:要求派生自基类.System.Enum. enum

e. 委托:等效于类型安全的C风格的函数指针,主要不同在于委托派生自System.MulticastDelegateD的类,而不是一个简单指向原始内存地址的指针。delegate

5. 类型成员:是集合{构造函数,终结器,静态构造函数,嵌套类型,操作符,方法,属性,索引器,字段,只读字段,常量,事件}中的元素之一。

6. CTS定义了各种可能与具体成员关联的修饰语。例如:可见性,抽象,虚拟,静态等。

7. CTS内建的数据类型:尽管不同的语言通常都有自己唯一的用于声明内建CTS数据类型的关键字,但是所有语言的关键字最终将解析成定义的mscorbib.dll程序集中的相同类型。

8.CLS:是一套规则,清晰地描述了支持.net的编译器必须支持的最小的和完全的特征集。

例如:有些语言(托管语言)可能不支持指针类型,C#中使用+而VB中使用&来连接字符串。[assembly:System.CLSCompliant(true)]就是用来指示C#编译器按CLS规则检查每行代码的。

9. CLR:运行时引擎。类似于mfc42.dll或者java虚拟机等。

10. 程序集/命名空间/类型的区别

11. ildasm.exe查看底层的CIL代码,reflector.exe提供反汇编代码.www.red-gate.com/products/reflector 下载

12. net的平台无关性:依托于CLI(公共语言基础设施),利用开源.net版本开发

              www.mono-project.com Mono针对各种Linux,以及windows,mac OS X/iPhone设备

              www.dotgnu.org Portable.NET运行在尽可能多的操作系统上

13. net本质上就是一个运行库执行引擎(mscoree.dll)和基础类库(mscorlib.dll)(自动引用)

   CLR可以承载任意符合托管代码规则的NET二进制文件(程序集),而程序集中有很多CIL指令(以及类型元数据和程序集清单),这些指令通过即时编译器编译为特定平台的指令。附加 CLS,CTS,ildasm.exe,reflector.exe. C#和net平台的平台无关性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值