This is trial version If you want get full version, please register it, thank you Web site http://www.adultpdf.com/ E-mail support(@adultpdf.com
This is trial version, If you want get full version,please register it,thank you. Web site: http://www.adultpdf.com/ E-mail: support@adultpdf.com
目录 第一部分C#语言概述 第一章NET编程语言C# Microsoftnet- 场新的革命 NET与C# 13C#语言的特点 小结 第二章运行环境——一全面了解NET 21NET结构 22公用语言运行时环境与公用语言规范 2.3开发工具 22379 4小结 第三章编写第一个应用程序 3.1 Welcome程序 3.2代码分析 33运行程序 34添加注释 3.5小结 第二部分C#程序设计基础. 第四章数据类型 41值类型 42引用类型 4.3装箱和拆箱 4小结 第五章变量和常量 5.1变量 常量 53小结 第六章类型转换 61隐式类型转换 62显式类型转换 63小结 第七章表达式 7.1操作符 72算术操作符和算术表达式 7.3赋值操作符和赋值表达式 8946 74关系操作符和关系表达式
目 录 第一部分 C#语言概述...................................................................................................4 第一章 .NET 编程语言 C#............................................................................................4 1.1 Microsoft.NET——一场新的革命..................................................................4 1.2 .NET 与 C#.......................................................................................................6 1.3 C#语言的特点..................................................................................................8 1.4 小 结 ........................................................................................................ 11 第二章 运行环境 全面了解.NET.........................................................................12 2.1 .NET 结构.......................................................................................................12 2.2 公用语言运行时环境与公用语言规范.........................................................13 2.3 开 发 工 具 ..................................................................................................17 2.4 小 结 ........................................................................................................19 第三章 编写第一个应用程序 .....................................................................................20 3.1 Welcome 程序 ................................................................................................20 3.2 代 码 分 析 ..................................................................................................20 3.3 运 行 程 序 ..................................................................................................23 .4 添 加 注 释 ................................................................................................25 3.5 小 结 ........................................................................................................27 第二部分 C#程序设计基础.........................................................................................28 第四章 数 据 类 型 ...................................................................................................28 4.1 值 类 型 ....................................................................................................28 4.2 引 用 类 型 ..................................................................................................33 4.3 装箱和拆箱 ....................................................................................................39 4.4 小 结 ........................................................................................................42 第五章 变量和常量 .....................................................................................................44 5.1 变 量 ........................................................................................................44 5.2 常 量 ........................................................................................................46 5.3 小 结 ........................................................................................................47 第六章 类 型 转 换 ...................................................................................................48 6.1 隐式类型转换 ................................................................................................48 6.2 显式类型转换 ................................................................................................53 6.3 小 结 ........................................................................................................56 第七章 表 达 式 .....................................................................................................58 7.1 操 作 符 ....................................................................................................58 7.2 算术操作符和算术表达式.............................................................................59 7.3 赋值操作符和赋值表达式.............................................................................64 7.4 关系操作符和关系表达式.............................................................................65
7.5逻辑操作符和逻辑表达式 7.6位运算 7.7其它特殊操作符 7.8小结 第八章流程控制 8θ27yy 8.1条件语句 82循环语句 8.3条件编译 84异常处理语句 85小结 第三部分面向对象的C# 第九章面向对象的程序设计 101 91面向对象的基本概念 9.2对象的模型技术 93面向对象的分析 94面向对象的设计 95小结 第十章类 112 10.1类的声明 l12 102类的成员 113 103构造函数和析构函数 119 04小结 第十一章方法 111方法的声明 124 112方法中的参数 113静态和非静态的方法 114方法的重载… 11.5操作符重载… 116小结 137 第十二章域和属性 .139 2.1域 122属性 12.3小结 第十三章事件和索引指示器 13.1事件 13,2索引指示器 13.3小结 第十四章继承 14.1C#的继承机制
7.5 逻辑操作符和逻辑表达式.............................................................................68 7.6 位 运 算 ....................................................................................................69 7.7 其它特殊操作符 ............................................................................................72 7.8 小 结 ........................................................................................................77 第八章 流 程 控 制 ...................................................................................................79 8.1 条 件 语 句 ..................................................................................................79 8.2 循 环 语 句 ..................................................................................................86 8.3 条 件 编 译...................................................................................................90 8.4 异常处理语句 ................................................................................................95 8.5 小 结 ......................................................................................................100 第三部分 面向对象的 C#..........................................................................................101 第九章 面向对象的程序设计 ...................................................................................101 9.1 面向对象的基本概念...................................................................................101 9.2 对象的模型技术 ..........................................................................................103 9.3 面向对象的分析 ..........................................................................................105 9.4 面向对象的设计 ..........................................................................................107 9.5 小 结 ...................................................................................................... 110 第十章 类 ................................................................................................................... 112 10.1 类 的 声 明 .............................................................................................. 112 10.2 类 的 成 员 .............................................................................................. 113 10.3 构造函数和析构函数 ................................................................................ 119 10.4 小 结 ....................................................................................................122 第十一章 方 法 ...................................................................................................124 11.1 方法的声明.................................................................................................124 11.2 方法中的参数.............................................................................................125 11.3 静态和非静态的方法.................................................................................129 11.4 方法的重载.................................................................................................130 11.5 操作符重载.................................................................................................134 11.6 小 结.....................................................................................................137 第十二章 域 和 属 性 .............................................................................................139 12.1 域 ................................................................................................................139 12.2 属 性 ....................................................................................................143 12.3 小 结 ....................................................................................................146 第十三章 事件和索引指示器 ...................................................................................148 13.1 事 件 ....................................................................................................148 13.2 索引指示器 ................................................................................................151 13.3 小 结 ....................................................................................................154 第十四章 继 承 ...................................................................................................155 14.1 C#的继承机制............................................................................................155
142多态性 14.3抽象与密封 144继承中关于属性的一些问题 14.5小结 第四部分深入了解C# 第十五章接口 15.1组件编程技术 174 接口定义 15.3接口的成员 154接口的实现 15.5抽象类与接口 195 156小结 第十六章组织应用程序 16.1基本概念 162使用名字空间 16.3使用指示符 164程序示例 5小结 213 第十七章文件操作 215 17.1Net框架结构提供的O方式 215 172文件存储管理 .217 17.3读写文件 74异步文件操作 17.5小结 第十八章高级话题 235 18.1注册表编程 182在C#代码中调用C+和ⅤB编写的组件 240 18.3版本控制 249 184代码优化 18.5小结 第五部分附录 255 附录A关键字 255 附录B错误码 附录CNet名字空间成员速查 参考资料
14.2 多 态 性 ................................................................................................159 14.3 抽象与密封 ................................................................................................163 14.4 继承中关于属性的一些问题.....................................................................169 14.5 小 结 ....................................................................................................172 第四部分 深入了解 C#..............................................................................................174 第十五章 接 口 ...................................................................................................174 15.1 组件编程技术 ............................................................................................174 15.2 接 口 定 义 ..............................................................................................177 15.3 接口的成员 ................................................................................................178 15.4 接口的实现 ................................................................................................182 15.5 抽象类与接口 ............................................................................................195 15.6 小 结 ....................................................................................................196 第十六章 组织应用程序 ...........................................................................................198 16.1 基 本 概 念 ..............................................................................................198 16.2 使用名字空间 ............................................................................................200 16.3 使用指示符 ................................................................................................203 16.4 程 序 示 例 ..............................................................................................206 16.5 小 结 ....................................................................................................213 第十七章 文 件 操 作 .............................................................................................215 17.1 .Net 框架结构提供的 I/O 方式 .................................................................215 17.2 文件存储管理 ............................................................................................217 17.3 读 写 文 件 ..............................................................................................222 17.4 异步文件操作 ............................................................................................227 17.5 小 结 ....................................................................................................234 第十八章 高 级 话 题 .............................................................................................235 18.1 注册表编程 ................................................................................................235 18.2 在 C #代码中调用 C++和 VB 编写的组件 ..............................................240 18.3 版 本 控 制 ..............................................................................................249 18.4 代 码 优 化 ..............................................................................................252 18.5 小 结 ....................................................................................................254 第五部分 附 录 ...................................................................................................255 附录 A 关 键 字....................................................................................................255 附录 B 错 误 码....................................................................................................256 附录 C .Net 名字空间成员速查................................................................................269 参 考 资 料 .................................................................................................................300
第一部分C#语言概述 第一章NET编程语言C# 未来5年,我们的目标就是超越今天各自为营的Wb站点,把 Internet建成个可 以互相交换组件的地方。—比尔盖茨 在本章中你将了解 Microsoft net的概念 NET框架 C#语言在NET框架中的作用及其特性 1.1 Microsoft. NET—场新的革命 11.1什么是NET 2000年6月22日,不论对 Microsoft还是对整个mT业界都将成为值得纪念的一天 这一天,微软公司正式推出了其下一代计算计划— Microsoft. net(以下简称NET) 这项计划将使微软现有的软件在Web时代不仅适用于传统的PC,而且也能够满足目前 呈强劲增长势头的新设备,诸如蜂窝电话以及个人数字助理( Personal Digital Assistant, PDA)等的需要。微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 Microsoft net的认同,并且开发出其他基于 Internet的服务 那么,你是否想知道:究竞什么是NET 请听听微软官员的声音:“……因特网的革命……从微软的角度来讲,我们就是要 建设一个平台来创建并且支持新一代的应用。………我们必须有一套通用系统服务来支 持这样的操作。这种观点就说明,我们还有下一个层次的发展,也就是说因特网下 步的发展,它将使因特网的作用远远超越展现一个网站。” NET首先是一个开发平台,它定义了一种公用语言子集( Common Language Subset,,CLS),这是一种为符合其规范的语言与类库之间提供无缝集成的混合语。NET 统一了编程类库,提供了对下一代网络通信标准,可扩展标记语言( Extensible Markup
第一部分 C#语言概述 第一章 .NET 编程语言 C# 未来 5 年 我们的目标就是超越今天各自为营的 Web 站点 把 Internet 建成一个可 以互相交换组件的地方 比尔.盖茨 在本章中你将了解 z Microsoft.NET 的概念 z .NET 框架 z C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出了其下一代计算计划 Microsoft.NET(以下简称.NET) 这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前 呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant, PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对 Microsoft.NET 的认同 并且开发出其他基于 Internet 的服务 那么 你是否想知道 究竟什么是.NET? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要 建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支 持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一 步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定义了一种公用语言子集 Common Language Subset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET 统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup
Language,XML)的完全支持,使应用程序的开发变得更容易、更简单。 Microsoft net 计划还将实现人机交互方面的革命,微软将在其软件中添加手写和语音识别的功能 让人们能够与计算机进行更好的交流,并在此基础上继续扩展功能,增加对各种用户 终端的支持能力。最为重要的,NET将改变因特网的行为方式:软件将变成为服务。 与 Microsoft的其它产品一样,NET与 Windows平台紧密集成,并且与其它微软产品 相比它更进一步:由于其运行库已经与操作系统融合在了一起,从广义上把它称为 个运行库也不为过 简而言之,NET是一种面向网络、支持各种用户终端的开发平台环境。微软的宏 伟目标是让 Microsoft net彻底改变软件的开发方式、发行方式、使用方式等等,并且 不止是针对微软一家,而是面向所有开发商与运营商!NET的核心内容之一就是要搭 建第三代因特网平台,这个网络平台将解决网站之间的协同合作问题,从而最大限度 地获取信息。在NET平台上,不同网站之间通过相关的协定联系在一起,网站之间 形成自动交流,协同工作,提供最全面的服务。 1.12我们为什么需要NET 某一天,你出差到外地,在机场租借手机电话。在向该终端插入自己的IC卡后, 自己的地址簿和计划簿被自动下载,随即它就变成了你个人专用的PDA。这不是梦境! 这是NET为我们描绘的一个未来生活的场景。 人们的需要总是无法满足,我们不断地问自己:“我们还应该有些什么?”需求推 动着技术的进步。在二十一世纪, Internet将成为商业活动的主要场所,B2B、B2C等 电子商务的运作方式,一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度。微软公司在此时提出NET有其深远的战略考虑 改革商务模型。微软公司感觉到只靠销售软件包的商务模型没有什么前途,该公 司打算今后将中心转移到可以在网络上使用“服务”型商务。这样,首要的问题就是解 决网络上用来开发并执行“服务”的平台,这就是 Microsoft net。 提高软件开发生产效率,并且试图使应用软件的发布更为容易(再也不想因为DLL 版本不同而烦恼,希望不用重新启动电脑就能够安装应用软件)。 改进用户界面,并能支持多种用户终端。用户界面演进的结果包括两方面的内容 是完成传统的PC界面与基于XML的浏览器界面间的过渡,二是对自然语言和语音 识别的支持,从而使用户与各种终端之间的沟通更加透明,真正达到网络互连的“3A Anywhere、 Anytime、 Any device 今天,许多的人时常问:“除了上网看新闻,我们究竟还能干什么?”这是因为今 天的互联网与旧式的大型计算机的工作模式还有许多相似之处,信息被储存在中央服 务器内,而用户的所有操作都要依靠它们。让不同的网址之间相互传递有意义的信息, 或者合作提供更广泛和更深层次的服务,还是一件十分困难的事。 现代人时常有一种困惑,感觉到如今生活在技术与机器架构的丛林中,我们在努 力地去适应机器,适应技术,而不是机器和技术适应人类。科技以人为本还只是一个 美好的愿望。这是因为我们还不能将控制信息的权利交给那些需要信息的人们。NET
Language XML 的完全支持 使应用程序的开发变得更容易 更简单 Microsoft.NET 计划还将实现人机交互方面的革命 微软将在其软件中添加手写和语音识别的功能 让人们能够与计算机进行更好的交流 并在此基础上继续扩展功能 增加对各种用户 终端的支持能力 最为重要的 .NET 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 Microsoft.NET 彻底改变软件的开发方式 发行方式 使用方式等等 并且 不止是针对微软一家 而是面向所有开发商与运营商 .NET 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 1.1.2 我们为什么需要.NET 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 Microsoft.NET 提高软件开发生产效率 并且试图使应用软件的发布更为容易 再也不想因为 DLL 版本不同而烦恼 希望不用重新启动电脑就能够安装应用软件 改进用户界面 并能支持多种用户终端 用户界面演进的结果包括两方面的内容 一是完成传统的 PC 界面与基于 XML 的浏览器界面间的过渡 二是对自然语言和语音 识别的支持 从而使用户与各种终端之间的沟通更加透明 真正达到网络互连的 3A Anywhere Anytime Any device 今天 许多的人时常问 除了上网看新闻 我们究竟还能干什么 这是因为今 天的互联网与旧式的大型计算机的工作模式还有许多相似之处 信息被储存在中央服 务器内 而用户的所有操作都要依靠它们 让不同的网址之间相互传递有意义的信息 或者合作提供更广泛和更深层次的服务 还是一件十分困难的事 现代人时常有一种困惑 感觉到如今生活在技术与机器架构的丛林中 我们在努 力地去适应机器 适应技术 而不是机器和技术适应人类 科技以人为本还只是一个 美好的愿望 这是因为我们还不能将控制信息的权利交给那些需要信息的人们 .NET
的出现,意味着人们可以只用一种简单的界面就可以编写、浏览、编辑和分享信息 而且还可以得到功能强大的信息管理工具。由于使用的所有的文件都以符合网络协议 的格式存在,所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商、商业伙伴和客户高效地沟通 和分享信息,这样就创造出一种全新的协同工作模式 总之,NET战略是一场软件革命: ●NEI对最终用户来说非常重要,因为计算机的功能将会得到大幅度提升,同 时计算机操作也会变得非常简单。特别地,用户将完全摆脱人为的硬件束缚:用户可 以自由冲浪于因特网的多维时空,自由访问、自由查看、自由使用自己的数据,而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统、任何便携式电脑、任何移 动电话或PDA进行访问,并可对其进行跨应用程序的集成 ·NET对开发人员来说也十分重要,因为它不但会改变开发人员开发应用程序 的方式,而且使得开发人员能创建出全新的各种应用程序,大幅提高软件生产率。NET 将保证完全消除当今计算技术中的所有缺陷。NET定能实现确保用户从任何地点、任 何设备都可访问其个人数据和应用程序的宏伟蓝图。 ●NET把雇员、客户和商务应用程序整和成一个协调的、能进行智能交互的整 体,而各公司无疑将是这场效率和生产力革命的最大受益者。NET承诺为人类创造 个消除任何鸿沟的商务世界。 113NET的核心组件 NET的核心组件包括 一组用于创建互联网操作系统的构建块,其中包括 Passport. NET(用于用户认 证)以及用于文件存储的服务、用户首选项管理、日历管理以及众多的其它任务 构建和管理新一代服务的基本结构和工具,包括 Visual studio net、NET企 业服务器、 Net framework和 Windows Net。 能够启用新型智能互联网设备的NET设备软件 NET用户体验。 12NET与C# 1.2.1支持多种编程语言的NET结构框架 让我们翻开教科书,回顾一下近十年来软件开发的历史 多年以前,当微软的组件对象模型( Component Object Model,COM)尚未推出时, 软件的复用性对于开发人员仅仅是一种美好的憧憬。成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动,但却收效甚微。COM的出现改变了
的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 z .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 z .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 z .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 1.1.3 .NET 的核心组件 .NET 的核心组件包括 z 一组用于创建互联网操作系统的构建块 其中包括 Passport.NET 用于用户认 证 以及用于文件存储的服务 用户首选项管理 日历管理以及众多的其它任务 z 构建和管理新一代服务的基本结构和工具 包括 Visual Studio.NET .NET 企 业服务器 .Net Framework 和 Windows.NET z 能够启用新型智能互联网设备的.NET 设备软件 z .NET 用户体验 1.2 .NET 与 C# 1.2.1 支持多种编程语言的.NET 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了
这一切。通过将组件改变为通用、集成型的构件,开发人员正逐渐地从过去的繁复编 程事务中解脱出来,可以选择自己最得心应手的编程语言进行编程。然而,软件组件 与应用程序之间的联合仍然是松散的,不同的编程语言与开发平台限制了部件间的互 用性,其结果是产生了日益庞大的应用程序与不断升级的软硬件系统。举个很简单的 例子,只用五行C语言代码就能编写出的一个简单程序,若使用COM来编写,结果 会是令人吃惊的:我们需要几百行代码。COM在带来巨大价值的同时,也大大增加了 开发开销。而 NeT Framework的出现使得一切问题都迎刃而解。实际上,在NET Framework中,所有的编程语言,从相对简单的 JScript到复杂的C艹语言,一律是等 Framework—一框架,是开发人员对编程语言命令集的称呼。Net框架的意义就在 于只用统一的命令集支持任何的编程语言。正如微软web服务中心的成组产品经理John Montgomery所说:“只需简单地一用,NET框架便可消除各种异类框架之间的差异, 将它们合并为一个整体。NET的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来,通过创建跨编程语言的公共API集,NET框架可提供强大的跨语言继承 性、错误处理和调试功能。现在,开发人员可以自由地选择他们喜欢的编程语言。NEI 平台欢迎所有人的垂顾。”NET将使编程人员梦想的语言互用性变成为近在眼前的现 实。想想看,一个在Ⅴ isual basic(VB)中定义的类能够在另一种与它完全不同的语言 环境中使用、调试,甚至继承,这是多么令人兴奋的事情! NET框架是NET平台的基础架构。其强大功能来自于公共语言运行时( Common Language runtime,CLR将在第二章中进行详细的解释)环境和类库。CLR和类库(包 括: Windows Forms, ADONET和 ASPNET)紧密结合在一起,提供了不同系统之间 交叉与综合的解决方案和服务。NET框架创造了一个完全可操控的、安全的和特性丰 富的应用执行环境。这不但使得应用程序的开发与发布更加简单,并且成就了众多种 类语言间的无缝集成。 122面向Net的全新开发工具—C# 在最近的一段时间里,C和C++一直是最有生命力的程序设计语言。这两种语言 为程序员提供了丰富的功能,高度的灵活性和强大的底层控制能力。而这一切都不得 不在效率上作出不同程度的牺牲。如果你使用过包括C和C++在内的多种程序设计语 言,相信你会深刻体会到它们之间的区别。比如与 Visual basic相比, Visual C++程序 员为实现同样的功能就要花费更长的开发周期。由于C和C++即为我们带来了高度的 灵活性,又使我们必须要忍受学习的艰苦和开发的长期性,许多C和C++程序员一直 在寻求一种新的语言,以图在开发能力和效率之间取得更好的平衡。 今天,人们改进、开发出了许多语言以提高软件生产率,但这些或多或少都以牺 牲C和C++程序员所需要的灵活性为代价。这样的解决方案在程序员身上套上了太多 的枷锁,限制了他们能力的发挥。它们不能很好地与原有的系统兼容,更为令人头痛 的是,它们并不总是与当前的Web应用结合得很好 理想的解决方案,是将快速的应用开发与对底层平台所有功能的访问紧密结合在
这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms ADO.NET 和 ASP.NET 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集成 1.2.2 面向.Net 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在
起。程序员们需要一种环境:它与Web标准完全同步,并且具备与现存应用间方便 地进行集成的能力。除此之外,程序员们喜欢它允许自己在需要时使用底层代码。 针对该问题,微软的解决方案是一种称之为C#的程序语言。C#是一种现代的面向 对象的程序开发语言,它使得程序员能够在新的微软NET平台上快速开发种类丰富的 应用程序。NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计,从构建组件形式的高层商业对象到构造系统级应 用程序,你都会发现,C#将是最合适的选择。使用C#语言设计的组件能够用于Web 服务,这样通过 Internet,可以被运行于任何操作系统上任何编程语言所调用。 不但如此,C#还能为C++程序员提供快捷的开发方式,又没有丢掉C和C++的基 本特征—强大的控制能力。C#与C和C++有着很大程度上的相似性,熟悉C和C++ 的开发人员很快就能精通C#。 1.3C#语言的特点 C#在带来对应用程序的快速开发能力的同时,并没有牺牲C与C++程序员所关心 的各种特性。它忠实地继承了C和C++的优点。如果你对C或C++有所了解,你会发 现它是那样的熟悉。即使你是一位新手,C#也不会给你带来任何其它的麻烦,快速应 用程序开发( Rapid Application Development,RAD)的思想与简洁的语法将会使你迅 速成为一名熟练的开发人员 正如前文所述,C#是专门为NET应用而开发出的语言。这从根本上保证了C# 与NET框架的完美结合。在NET运行库的支持下,NET框架的各种优点在C#中表现 得淋漓尽致。让我们先来看看C#的一些突出的特点,相信在以后的学习过程中,你将 会深深体会到“ “ SHARP”的真正含义。 简洁的语法 精心地面向对象设计 与Web的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 1.31简洁的语法 请原谅,虽然我们一再强调学习本书不需要任何的编程基础,但在这里还不得不 提到C++。 在缺省的情况下,C#的代码在NET框架提供的“可操控”环境下运行,不允许直 接地内存操作。它所带来的最大特色是没有了指针。与此相关的,那些在C++中被疯 狂使用的操作符(例如:“::”“-”和“,”)已经不再出现。C#只支持一个“.”,对
一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 1.3 C#语言的特点 C#在带来对应用程序的快速开发能力的同时 并没有牺牲 C 与 C++程序员所关心 的各种特性 它忠实地继承了 C 和 C++的优点 如果你对 C 或 C++有所了解 你会发 现它是那样的熟悉 即使你是一位新手 C#也不会给你带来任何其它的麻烦 快速应 用程序开发 Rapid Application Development RAD 的思想与简洁的语法将会使你迅 速成为一名熟练的开发人员 正如前文所述 C#是专门为.NET 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 z 简洁的语法 z 精心地面向对象设计 z 与 Web 的紧密结合 z 完整的安全性与错误处理 z 版本处理技术 z 灵活性与兼容性 1.3.1 简洁的语法 请原谅 虽然我们一再强调学习本书不需要任何的编程基础 但在这里还不得不 提到 C++ 在缺省的情况下 C#的代码在.NET 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对
于我们来说,现在需要理解的一切仅仅是名字嵌套而已。 C#用真正的关键字换掉了那些把活动模板库( Active Template Library,ALT)和 COM搞得乱糟糟的伪关键字,如 OLE COLOR、BOOL、 VARIANT BOOL、 DISPID XXXXX等等。每种C#类型在NET类库中都有了新名字 语法中的冗余是C++中的常见的问题,比如“ const”和“# define”各种各样的字 符类型等等。C#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法 结构中被清除了出去。 1.32精心地面向对象设计 也许你会说,从 Smalltalk开始,面向对象的话题就始终缠绕着任何一种现代程序 设计语言。的确,C#具有面向对象的语言所应有的一切特性:封装、继承与多态,这 并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#是建 造广泛组件的绝对选择。 在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱 ( boxing)与拆箱( unboxing)的机制来完成这种操作,而不给使用者带来麻烦,这在 以后的章节中将进行更为详细的介绍 C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后 面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常 数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减 少了发生命名冲突的可能 整个C#的类模型是建立在NET虚拟对象系统(Ⅴ isual Object System,ⅤOS)的基 础之上,其对象模型是NET基础架构的一部分,而不再是其本身的组成成分。在下面 将会谈到,这样做的另一个好处是兼容性 借助于从ⅤB中得来的丰富的RAD经验,C#具备了良好的开发环境。结合自身强 大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软 件开发周期的缩短将能使它们更好地应付网络经济的竞争。在功能与效率的杠杆上人 们终于找到了支点 133与Web的紧密结合 NET中新的应用程序开发模型意味着越来越多的解决方案需要与Web标准相统 例如超文本标记语言( Hypertext Markup Language,HIML)和XML。由于历史 的原因,现存的一些开发工具不能与Web紧密地结合。SOAP的使用使得C#克服了这 缺陷,大规模深层次的分布式开发从此成为可能。 由于有了web服务框架的帮助,对程序员来说,网络服务看起来就像是C的本地 对象。程序员们能够利用他们已有的面向对象的知识与技巧开发Web服务。仅需要使 用简单的C#语言结构,C#组件将能够方便地为Web服务,并允许它们通过 Internet被 运行在任何操作系统上的任何语言所调用。举个例子,XML已经成为网络中数据结构 传送的标准,为了提高效率,C#允许直接将XML数据映射成为结构。这样就可以有
于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template Library ALT 和 COM 搞得乱糟糟的伪关键字 , 如 OLE_COLOR BOOL VARIANT_BOOL DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 1.3.2 精心地面向对象设计 也许你会说 从 Smalltalk 开始 面向对象的话题就始终缠绕着任何一种现代程序 设计语言 的确 C#具有面向对象的语言所应有的一切特性 封装 继承与多态 这 并不出奇 然而 通过精心地面向对象设计 从高级商业对象到系统级应用 C#是建 造广泛组件的绝对选择 在 C#的类型系统中 每种类型都可以看作一个对象 C#提供了一个叫做装箱 boxing 与拆箱 unboxing 的机制来完成这种操作 而不给使用者带来麻烦 这在 以后的章节中将进行更为详细的介绍 C#只允许单继承 即一个类不会有多个基类 从而避免了类型定义的混乱 在后 面的学习中你很快会发现 C#中没有了全局函数 没有了全局变量 也没有了全局常 数 一切的一切 都必须封装在一个类之中 你的代码将具有更好的可读性 并且减 少了发生命名冲突的可能 整个 C#的类模型是建立在.NET 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 1.3.3 与 Web 的紧密结合 .NET 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有