快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

.NET框架程序设计读书笔记(三)--.net框架类库(FCL)和通用类型系统、代码互操作

1.5 .net框架类库

.net框架中包括有一组.net框架类库(Framework Class Library,简称FCL)程序集,其中含 有几千个类型的定义,每个类型都提供了某种功能。

CLR和FCL答应开发人员创建以下几种应用程序:

l XML Web 服务 即XML Web Services,又简称Web服务。该服务使我得我们可以异常轻易地通过互联网来进行方式调用。

l Web 窗体 即Web Forms 就是ASP.NET应用程序。他提供了类似于开发Windows程序的方式来开发Web应用程序。

l Windows 窗体 即Windows Forms,Windows图形用户界面(GUI)应用程序。

l Windows 控制台应用程序

l Windows 服务

l 组件库



FCL的所有类型 可以通过 文档查得。



1.6通用类型系统

类型为应用程序和组件提供了它们所需要的功能。

类型作为一种机制使得一种语言编写的代码可以和另一种语言编写的代码进于无缝地集成。

类型是CLR的基础。微软为此专门制定了一个正式的规范----通用类型系统来描述类型的定义和行为。

CTS定义的类型的组成部分:

l 字段 字段是一个属于对象状态部分的数据成员。字段由它们的名称和类型标识。

l 方式 方式是一个在对象上执行某种操作的函数,通常会改变对象的状态。方式有一个名称、签名和修饰符。

l 属性 属性调用时,类似于字段,实现时,类似于方式。提供了与使用字段相似的方法来使用方式。

l 事件 事件答应在一个对象和其他相关联的对象之间建立一个通知机制。

CTS定义的成员的可见性:

Private 方式只能被同一类型中的其他方式调用。

l Family 方式可以被派生类型中的代码调用,而不管它们是否位于同一个程序集中。(C#中 称之为:protected)

l Family 与 assembly 方式只可以被位于同一个程序集中的派生类型中的代码调用。(C# 和Visual Basic没有提供这种访问控制。

l Assembly 方式可以被同一个程序集中的任何代码调用,(在c#中称为:internal).

l Family 和 assembly 方式可以被任何程序集中的派生类型的代码调用,也可以被同一程序集中的任何类型调用。 C#称为 Protected internal.

l Public 方式可以被任何程序集中的任何代码调用。



CTS 仅支持 单继续

CTS规定所有的类型都必须(直接或间接)继续自预定义类型System.Object.





1.7 通用语言规范

CLR集成了所有的编程语言,并且答应一种语言创建的对象在另一种不同的语言编写的代码中被看作同等的成员。CLR的标准类型集合,自描述类型的信息(即元数据),和通用执行环境使得这种集成成为可能。

通用语言规范(Common Language Specification,简称CLS),为描述了面向CLR的编译器必须支持的一个最小特性集合。

CLS规定.net平台下的各种语言必须支持类型规则的最小集合,所有.net平台的语言都必须支持。当然,每种语言都可以更多地支持CTS上的规则。

C#和Visual Basic 都必须支持CLS,但除此这外,c#可以另外支持CTS的一些特性,而Visual Basic也可以直持一些C#没有的CTS中的特性。当然,当你使用C#编写供Visual Basic 使用的组件时,不能在公用的接口上使用Visual Basic不支持的特性。如:

Public Uint32 Abc() 该public 方式返回Uint32 Visual Basic不支持。编译器会报错。

当然,当你使用 private Uint32 Abc() ,是答应的,因为他不是公有的。



CLS规定,CLR中,类型的每个成员或者是一个字段,或者是一个方式。各种编程语言中的枚举、数组、属性、索引器、委托、事件、构造器、析构器、重载操作符、转变操作符等等都需要在编译时翻译成字段或方式,这样,其他语言才能够访问它们。



1.8 与非托管代码互操作



.net框架提供了比其他开发平台更为优越的特性,并且答应应用程序同时含有托管和非托管部分。详细来说,有三种互操作情形:



l 托管代码调用DLL中的非托管函数 托管代码可以很轻易地使用一种称作 P/Invoke(即Platform Invoke,平台调用)的机制来调用DLL(动态链接库文件)。

l 托管代码使用现存的COM组件(非托管组件作为COM服务器) 可以创建描述它们的托管程序集。托管代码可以象访问其他托管代码相同访问这些托管程序集中的类型。

l 非托管代码使用托管类型(托管类型作为COM服务器)




返回类别: 教程
上一教程: 什么是受管(managed)?
下一教程: ASP+中取代ASP的RS(Remote Scripting)技术的Framework

您可以阅读与".NET框架程序设计读书笔记(三)--.net框架类库(FCL)和通用类型系统、代码互操作"相关的教程:
· NET框架程序设计读书笔记(三)--执行程序集代码
· 第七章 类型成员及其访问限定[《.NET框架程序设计》读书笔记]
· 第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]
· .net框架程序设计读书笔记二(Microsoft .net 框架开发平台体系架构)
· .net 框架程序设计 读书笔记(一)---.net 平台构成
    微笑服务 优质保证 索取样品