C#语言程式设计基础


C#语言程式设计基础

文章插图
C#语言程式设计基础【C#语言程式设计基础】《C#语言程式设计基础》是2010年12月30日清华大学出版社出版的图书,作者是郑宇军、王侃、凌海风 。
基本介绍书名:C#语言程式设计基础
作者:郑宇军、王侃、凌海风
ISBN:9787302168478
定价:39元
出版社:清华大学出版社
出版时间:2010年12月30日
装帧:平装
开本:16开
内容简介C#语言是 。NET平台上的核心开发语言,C# 2.0版本更是将泛型思想和对象技术进行了完美融合 。本书是关于C#语言程式设计的基础教科书,本书介绍C#的基本语法和类型系统;面向对象程式设计,包括对象、接口、继承和多态性;泛型程式设计,包括泛型类型、可空类型、泛型方法和匿名方法;商业套用开发的基础知识,包括异常处理、档案操作和多执行绪等 。本书可作为高等院校计算机及相关专业的程式设计语言教材,也可供专业开发人员学习参考 。图书前言作本书期间,幸值David Gries先生来华访问 。交流中谈及大学计算机专业的第一门程式设计课程,Gries非常强调抽象编程思维和良好编程风格的培养,并提倡“对象先行”(object first)的教学方式,以及“深入语言编程”(programming into a language)的实践方法 。这也引发了笔者的进一步思考 。软体开发方式发生了深刻的变革;软体已不再是个人精雕细琢的艺术品,而是一系列标準化软体过程活动的产品 。在引导读者走入编程世界的过程中,应当选取一门简单易学、类型安全且完全面向对象的程式设计语言,同时又要避免课程沦为开发工具和语言的职业培训 。而无论读者日后成长为计算机理论研究的学者,还是专业软体开发人员,科学的编程思想始终是他们脑中的“武功秘诀”,流行的语言工具则随时能够成为他们手中的利器 。C#语言脱胎于C/C++,同时汲取了Java、Delphi等语言的精华,是.NET平台上的核心开发语言 。C# 2.0更是将泛型编程思想与面向对象技术进行了完美的融合,使其成为符合现代软体工程要求的主流程式设计语言 。为适应.NET技术发展的趋势,特别是满足大中专院校开设C#程式设计课程的要求,我们组织编写了此书 。本书循序渐进、深入细緻地讲解了C#语言的编程技术,并重点介绍了C# 2.0的新增特性 。全书内容共包括4个部分17章 。* C#语言基础:第1章介绍了.NET技术和C#语言的概貌,第2~5章则依次讲解了C#的类型系统、常量和变数、表达式,以及控制结构 。* 面向对象的程式设计:第6章和第7章详细介绍了C#面向对象的基本要素,包括类的封装、继承和多态性,第8章则通过若干常用类型来加深对相关概念的理解 。* 泛型程式设计:第9章是泛型的基础概念,第10章的可空类型就是泛型结构的一个典型实例,第11章继续深入讲解了泛型接口、方法和委託,第12章和第13章则分别介绍了有关泛型的两个高级套用——遍历器和匿名方法 。* 商业套用开发:第14~17章介绍了C#商业套用开发的必备知识,包括异常处理、档案操作、多执行绪处理,以及代码组织 。每一章在结束时都对主要知识点进行了回顾和总结,并通过一定数量的习题来帮助读者温习所学内容 。对于面向对象技术的初学者来说,最困难的部分应是类的继承和多态性;对于有一定基础的开发者来说,C#语言中最不易掌握的可能是委託(delegate)这个概念 。而C# 2.0新增的两个主要特性——泛型和匿名方法,又恰恰增加了这两方面内容的深度 。因此第7、9、13章是本书的难点所在 。全书提供了大量鲜明生动的案例程式,全部原始码及配套课件、测试题等相关资源均可在清华大学出版社网站下载 。本书另外配有上机实验指导书,可供教学使用 。针对高校计算机科学与技术专业、计算机套用专业与非计算机专业程式设计课程的不同需求,下表分别给出了建议的课程学时安排(括弧中表示上机学时,×表示选修或自学内容) 。图书目录:第1章 绪论11.1 Microsoft .NET技术11.2 .NET Framework21.2.1 公共语言运行时(CLR)31.2.2 .NET类库31.3 C#语言简介41.4 开发第一个C#应用程式61.5 C#程式的基本结构81.5.1 程式集81.5.2 命名空间101.5.3 类型和方法101.5.4 程式注释121.6 与用户进行互动121.6.1 控制台互动121.6.2 Windows窗体应用程式15本章小结17习题117第2章 C#数据类型192.1 值类型192.1.1 整数类型192.1.2 字元类型222.1.3 实数类型232.1.4 布尔类型242.1.5 结构252.1.6 枚举262.2 引用类型282.2.1 类282.2.2 接口312.2.3 委託332.2.4 数组352.3 类型转换392.3.1 数值转换392.3.2 枚举转换422.3.3 引用转换432.3.4 装箱和拆箱转换452.3.5 转换检查47本章小结47习题247第3章 成员、变数和常量503.1 基本成员类型503.1.1 栏位503.1.2 方法513.1.3 嵌套成员563.2 成员访问限制563.2.1 private修饰符563.2.2 public修饰符573.2.3 protected修饰符583.2.4 internal修饰符583.2.5 访问限制级别603.3 静态成员和非静态成员613.4 变数633.5 常量66本章小结68习题368第4章 操作符和表达式714.1 操作符714.2 算术表达式724.2.1 基本算术运算724.2.2 枚举运算754.2.3 模运算764.2.4 其他774.3 自增和自减表达式79 4.4 位运算表达式804.4.1 取补运算804.4.2 与、或、异或运算814.4.3 移位运算824.5 赋值表达式834.6 关係表达式844.6.1 比较运算844.6.2 类型判断854.7 条件逻辑表达式874.8 其他特殊表达式884.8.1 一元加减表达式884.8.2 条件表达式894.8.3 类型表达式894.8.4 创建表达式934.8.5 溢出检查表达式95本章小结96习题496第5章 流程控制985.1 选择结构985.1.1 if语句985.1.2 switch语句1015.2 循环结构1035.2.1 while循环语句1035.2.2 do-while循环语句1045.2.3 for循环语句1065.2.4 foreach循环语句1095.3 跳转结构1115.3.1 break语句1115.3.2 continue语句1125.3.3 return语句1135.3.4 goto语句114本章小结116习题5116第6章 深入理解类1186.1 面向对象的方法学1186.2 构造函式和析构函式1196.2.1 构造函式1196.2.2 析构函式1216.2.3 静态构造函式1216.3 属性1236.4 索引函式1266.5 事件1296.5.1 事件与委託1296.5.2 使用EventHandler委託对象1316.5.3 Windows控制项事件1336.6 操作符重载1356.7 this关键字139本章小结142习题6142第7章 继承和多态性1457.1 继承1457.1.1 基类和派生类1457.1.2 成员覆盖1497.1.3 对象生命周期1517.2 多态性1537.2.1 成员的虚拟和重载1537.2.2 抽象方法和抽象类1577.2.3 密封方法和密封类1607.3 接口及其实现1627.3.1 接口和抽象类1627.3.2 接口方法调用1637.3.3 接口与集合168本章小结173习题7174第8章 常用类型1768.1 Math类1768.2 字元串类型1798.2.1 构造字元串1798.2.2 字元操作180 8.2.3 子串操作1838.2.4 格式化与解析1878.2.5 使用StringBuilder类1928.3 窗体和控制项类1948.3.1 与窗体界面有关的若干结构1948.3.2 Form类1958.3.3 Control类1988.3.4 其他基本控制项199本章小结202习题8203第9章 泛型基础2049.1 为何使用泛型2049.2 创建泛型类2069.2.1 泛型集合示例2069.2.2 成员与类型参数2089.2.3 调用类型参数2109.2.4 泛型的静态成员2119.3 多参数泛型2129.3.1 使用多个类型参数2129.3.2 类型参数与标识2159.4 类型限制2169.4.1 主要限制2169.4.2 次要限制2169.4.3 构造函式限制2199.5 泛型与继承2199.5.1 普通基类与派生泛型类2209.5.2 泛型基类与普通派生类2229.5.3 泛型基类与泛型派生类223本章小结226习题9227第10章 可空类型22910.1 引入可空类型22910.2 泛型结构Nullable23210.2.1 概述23210.2.2 结构成员23310.3 可空类型的转换23410.4 可空类型上的操作23710.4.1 类型检查23710.4.2 空值结合23710.4.3 操作符提升23810.5 可空布尔类型241本章小结243习题10243第11章 泛型接口、方法和委託24511.1 泛型接口24511.1.1 概述24511.1.2 继承中的唯一性25011.1.3 泛型接口与集合25311.2 泛型方法25711.2.1 概述25711.2.2 定义和调用25811.2.3 方法标识26011.2.4 方法重载26211.3 泛型方法与委託267本章小结270习题11270第12章 遍历器27312.1 foreach语句与遍历27312.2 理解可枚举类型27512.2.1 IEnumerable和IEnumerable<T>接口27512.2.2 实现多种遍历方式27712.3 使用枚举器28312.3.1 Iterator模式28312.3.2 自定义枚举器284 12.4 遍历机制28712.4.1 遍历器代码28712.4.2 遍历流程28912.5 自我枚举和遍历290本章小结294习题12294第13章 匿名方法29613.1 命名方法和匿名方法29613.2 深入了解Delegate类29813.2.1 创建委託对象29813.2.2 属性29913.2.3 方法调用30113.3 匿名方法的定义规则30313.4 外部变数30413.5 委託对象作为方法参数和返回值30713.6 在事件中使用匿名方法312本章小结316习题13316第14章 异常处理31914.1 错误和异常31914.2 C#中的异常处理结构32214.2.1 try-catch语句32214.2.2 try-catch-finally语句32414.2.3 try-finally语句32814.2.4 throw语句32814.3 异常的层次结构33014.3.1 异常传播33114.3.2 Exception类33314.3.3 常见异常类型33514.4 使用异常的原则和技巧337本章小结338习题14338第15章 档案IO操作34115.1 档案系统概述34115.2 驱动器、目录和档案34215.2.1 与IO操作相关的枚举34215.2.2 驱动器34315.2.3 目录34615.2.4 档案34915.3 档案流和数据流35215.3.1 抽象类Stream35215.3.2 档案流FileStream35415.3.3 流的文本读写器35615.3.4 流的二进制读写器35915.3.5 常用的其他流对象36015.4 自定义IO操作363本章小结369习题15369第16章 进程和执行绪37116.1 进程37116.2 执行绪37616.2.1 使用多执行绪37616.2.2 执行绪对象及其状态38016.2.3 执行绪同步38316.2.4 异步回调389本章小结392习题16392第17章 代码组织与管理39417.1 分部类型39417.1.1 分部类型的定义394 17.1.2 分部泛型39617.1.3 分部类型的套用39817.2 代码中的预处理器指令40217.2.1 条件编译40217.2.2 编译警告和错误40717.2.3 其他一些预处理器指令40817.3 XML代码注释40817.3.1 使用XML注释40817.3.2 关于注释标记411本章小结413习题17413参考文献415