C# Primer Plus中文版
2002-7
人民邮电出版社
(美)klaus michelsen
689
1435000
云巅工作室 周良忠
无
本书全面介绍了微软最新推出的编程语言C#。第1章介绍了学习C#必需的软、硬件概念。第2~5章介绍了C#的基本语言元素与结构。第6~9章讲解了进行C#编程的一些概念,包括类型、操作符、分支语句、迭代语句等。第10~11章讨论了数组的使用。第12~18章详细讨论了如何运用C#进行面向对象编程。第19~20章分别介绍了C#中的异常处理、代表与事件。第21~23章介绍了一些C#编程的相关知识,如提取XML说明文档、I/O基础知识及递归。每章都配备了大量复习题和编程练习,附录部分提供了参考答案。 本书面向C#初学者也适合于有经验的程序员学习和转向C#编程。
第1章 计算机和计算机编程:基本概念 11.1 C#是一种面向对象编程语言 21.2 硬件 31.2.1 主存储器的实质 41.2.2 数字系统 51.2.3 字节 51.2.4 文件 61.3 软件 61.3.1 执行C#程序的大致过程 71.3.2 操作系统 71.3.3 编程语言和编译器 71.3.4 .NET简介 81.3.5 在.NET中编译C#源代码 91.4 小结 101.5 复习题 11第2章 你的第一个C#程序 122.1 软件开发 132.2 软件开发过程 132.3 算法和伪码 142.4 3个不同的错误类型 152.5 面向对象编程:初次体验 162.5.1 面向过程编程及其先天缺陷 162.5.2 面向对象编程及其优点 172.6 软件重用 192.7 .NET中代码重用的基本单元:集合 212.7.1 从开发者角度看集合 212.7.2 从用户角度看集合 222.8 .NET框架类库 232.9 C#的历史和设计目标 242.10 C#背景 242.11 C#的设计目标 262.12 能用C#编写什么样的程序 272.13 创建C#程序的原理 282.14 开始编程之前 282.15 选择文本编辑器 282.16 编写一个简单C#程序的7步 292.16.1 打开和使用命令控制台(第1步) 292.16.2 输入和保存C#源代码(第2步) 302.16.3 将源代码转换成一个PE(.exe)文件(第3步) 322.16.4 编译和查找错误(第4步) 322.16.5 运行程序(第5步) 332.16.6 验证输入(第6步) 332.16.7 庆祝的时刻(第7步) 332.17 源代码简短分析 332.18 语法错误与编译器的注释 342.19 小结 342.20 复习题 352.21 编程练习 35第3章 C#导游:第一部分 363.1 简介 373.2 抽象和封装 373.2.1 抽象(Abstraction) 373.2.2 封装(Encapsulation) 383.2.3 学习面向对象编程的一个说明 413.3 一个交互式的Hello World!程序 423.3.1 编写Hello.cs 423.3.2 Hello.cs程序的基本元素 443.3.3 几个基本知识 513.4 小结 553.5 复习题 553.6 编程练习 56第4章 C#导游:第二部分 574.1 简介 584.2 SimpleCalculator.cs程序所需元素 584.2.1 SimpleCalculator.cs程序清单 584.2.2 对SimpleCalculator.cs程序的详细分析 604.3 用方法简化你的代码 674.4 方法就是构造块:用关键字private封装你的Helper方法 684.5 小结 694.6 复习题 694.7 编程练习 70第5章 你的第一个面向对象C#程序 715.1 简介 725.2 词汇结构 725.2.1 标识符和CaPitaLIcaTioN样式 725.2.2 字面值 725.2.3 注释和代码诠释 735.2.4 分隔符 735.2.5 操作符 735.2.6 关键字 745.3 对电梯模拟的一些思考 745.4 概念、目标和电梯模拟程序方案:为评价电梯系统搜集有用统计数据 745.5 面向对象程序的一个实例 755.5.1 程序SimpleElevatorSimulation.cs清单 765.5.2 程序的整体结构 785.5.3 对SimpleElevatorSimulation.cs程序的深入分析 795.5.4 类关系和统一模型语言(UML) 855.6 小结 885.7 复习题 885.8 编程练习 89第6章 类型第一部分:简单类型 906.1 简介 916.2 概览C#中的类型 916.2.1 什么是类型 916.2.2 C#:一个强类型化语言 926.2.3 类型的优点 936.2.4 C#类型 946.3 简单类型 986.3.1 概观简单类型 996.3.2 整数类型 1026.4 Blipos时钟 1126.4.1 浮点类型 1196.4.2 decimal类型 1236.4.3 浮点、decimal和整数值的兼容性 1246.4.4 显式类型转换 1246.4.5 常量:字面值的符号名字 1256.4.6 格式化数字值 1286.4.7 bool类型:初步接触 1306.5 小结 1306.6 复习题 1316.7 编程练习 132第7章 类型第二部分:操作符、枚举器和字符串 1337.1 简介 1347.2 算术操作符及数字表达式 1347.3 结合性 1377.4 括号和优先级 1387.5 模操作符(%) 1397.6 一元操作符 1437.6.1 一元加和一元减 1437.6.2 自增和自减操作符 1447.7 判断表达式的类型 1467.8 在一个表达式中组合不同的类型 1487.9 访问组件的元数据:简介 1517.10 枚举常量 1547.11 枚举器操作符 1567.12 转换 1577.13 System.Enum方法 1577.14 字符和文本 1577.15 char类型 1577.16 string类型 1607.16.1 string字面值和string对象 1617.16.2 逐字字符 1617.16.3 使用字符串 1627.16.4 在字符串中嵌入格式化数字 1647.16.5 使用字符串 1677.17 小结 1787.18 复习题 1797.19 编程练习 180第8章 流程控制第一部分:分支语句及相关概念 1818.1 流程控制简介 1828.2 if分支语句 1838.2.1 简单if语句 1838.2.2 复合语句 1848.2.3 可选else子句 1858.3 比较操作符和布尔表达式 1878.4 嵌套if语句 1898.5 多分支if-else语句 1938.6 逻辑操作符 1968.6.1 逻辑与(AND)操作符:&& 1988.6.2 逻辑或(OR)操作符:|| 2008.6.3 短路求值和位操作符&与| 2028.6.4 位异或操作符:^ 2038.6.5 逻辑非(NOT)操作符:! 2038.7 变量的作用域 2058.8 goto语句 2088.9 switch语句 2108.9.1 switch语句规则1 2138.9.2 switch语句规则2 2148.9.3 switch语句规则3 2168.9.4 switch语句规则4 2188.9.5 使用switch语句 2188.10 条件操作符 2198.11 小结 2198.12 复习题 2208.13 编程练习 221第9章 流程控制第二部分:迭代语句 2229.1 遍历、分析和生成数据序列 2239.2 while循环语句 2239.3 do-while循环语句 2279.4 for循环语句 2309.5 跳转语句break和continue 2359.5.1 break语句 2359.5.2 continue语句 2369.6 结构化编程和结构化的结构 2379.7 组合赋值操作符 2399.8 嵌套迭代语句 2419.9 编程练习 2469.10 小结 2479.11 复习题 2489.12 编程练习 249第10章 数组第一部分:数组基本知识 25110.1 数组的声明和定义 25210.2 访问单个数组元素 25510.3 数组索引越界 25910.4 调整基于0的数组索引 26210.5 初始化数组 26310.6 用foreach语句遍历整个数组 26410.7 System.Array是一个引用类型 26510.8 数组和相等性 26710.9 数组和方法 26910.9.1 数组元素作为方法中的参数 26910.9.2 数组引用作为方法参数 27010.9.3 克隆数组对象 27310.10 执行数组值相等性比较的方法 27610.11 命令行参数 27710.12 使用数组作为方法的返回值 27910.13 引用对象的数组元素 28210.14 数组作为类中的实例变量 28510.15 小结 29210.16 复习题 29310.17 编程练习 294第11章 数组第二部分:多维数组——数组检索与排序 29511.1 多维数组 29611.1.1 二维数组 29611.1.2 锯齿数组 31111.2 多于二维的数组 31411.3 System.Array的内置方法 31711.4 特殊数组技术 31811.5 检索 32511.5.1 顺序检索(Sequential Search) 32611.5.2 二分检索(Binary Search) 32711.5.3 用System.Array的IndexOf方法检索 33211.6 小结 33311.7 复习题 33311.8 编程练习 334第12章 类解剖第一部分:静态类成员和方法的使用 33512.1 类解剖:概览 33612.2 数据成员(data member) 33812.2.1 实例变量(instance variable) 33812.2.2 静态变量(static variable) 33812.2.3 常量成员(constant member) 34412.2.4 只读成员(readonly member) 34512.2.5 声明数据成员:概览 34512.3 函数成员 34612.3.1 方法 34612.3.2 静态方法(static methods) 34812.4 小结 37012.5 复习题 37112.6 编程练习 373第13章 类解剖第二部分: 对象创建和垃圾回收 37513.1 实例构造函数 37613.1.1 为什么需要实例构造函数 37613.1.2 使用实例构造函数 37813.1.3 重载实例构造函数 38113.1.4 构造函数初始化器 38613.1.5 私有实例构造函数 38813.2 静态构造函数 38813.3 只读成员(readonly member) 38913.4 垃圾回收:自动动态内存管理 39013.4.1 对象如何被废弃 39013.4.2 垃圾回收器的任务 39313.4.3 释放非内存有限资源 39413.5 小结 40513.6 复习题 40613.7 编程练习 407第14章 类解剖第三部分: 编写直观代码 40914.1 属性 41014.1.1 属性与存取器和变异器方法 41014.1.2 使用属性提高效率 41514.1.3 用属性实现延迟初始化和惰性更新 41614.2 索引器:像数组一样使用对象 41914.2.1 从索引器所寄居的对象中调用索引器 42214.2.2 索引器重载:同一类中的多索引器 42214.2.3 避免滥用索引器 42614.3 操作符重载 42714.4 用户自定义隐式和显式转换 43414.4.1 需要用户自定义转换的两种情形 43514.4.2 使用非用户自定义转换技术 43614.4.3 用户自定义转换语法 43614.4.4 综合运用用户自定义和隐式转换 44114.5 嵌套类型 44214.5.1 嵌套类的优点 44314.5.2 简单嵌套类示例 44314.6 小结 44414.7 复习题 44414.8 编程练习 446第15章 名字空间、编译单元和集合 44715.1 自定义名字空间 44815.2 全局匿名名字空间 44815.3 名字空间和编译单元 44915.4 嵌套名字空间 45015.5 名字空间语法 45215.6 using指示符的更多知识 45315.7 编译单元、名字空间及集合 45515.7.1 将几个编译单元编译成一个集合 45515.7.2 重用集合中的名字空间 45815.7.3 将名字空间分布到几个集合中 46015.8 应用Ildasm探索集合 46215.9 小结 46415.10 复习题 46415.11 编程练习 466第16章 继承第一部分:基本概念 46716.1 继承的必需性 46816.2 继承基础知识 47316.3 访问修饰符及继承 48016.3.1 访问修饰符protected 48016.3.2 访问私有基类成员 48016.3.3 internal protected访问修饰符 48116.3.4 C#的访问修饰符:概览 48116.4 派生类构造函数 48216.5 索引器也能被继承和覆盖 48516.6 在基类中调用覆盖函数 48716.7 通过继承重用.NET框架类库 49016.8 多级派生类 49116.9 方法覆盖及重载原理不同 49416.10 小结 49516.11 复习题 49616.12 编程练习 497第17章 继承第二部分:抽象函数、多态及接口 49917.1 抽象方法、属性、索引器及类 50017.2 多态(polymorphism) 50317.2.1 后代类的对象具有多个类型 50317.2.2 动态捆绑虚方法和(get,set)存取器 50317.2.3 实例学习:使用多态创建简单绘图程序 50517.3 丢失和重新获取类型信息 51117.3.1 is操作符 51117.3.2 对象类型转换 51117.3.3 as操作符 51417.4 最终的基类:System.Object 51417.5 隐藏方法 51817.6 用new和override关键字控制版本 52017.7 多重继承 52217.8 接口 52317.8.1 定义接口 52417.8.2 实现接口 52617.8.3 应用接口的一般编程 52817.8.4 构建接口层次 53117.8.5 接口转换 53217.8.6 覆盖虚接口 53217.8.7 显式实现接口函数 53317.9 小结 53517.10 复习题 53517.11 编程练习 536第18章 结构 53818.1 定义结构 53918.2 装箱和拆箱 54118.3 用与不用new关键字创建结构 54218.4 值类型和引用类型 54318.5 小结 54418.6 复习题 54418.7 编程练习 544第19章 异常处理 54519.1 异常处理概览 54619.2 没有try-catch-finally的情形 54619.3 try和catch块 54819.4 捕获函数调用链上端的异常对象 55019.5 多重catch块 55119.6 finally块 55219.7 嵌套try块 55419.8 用throw显式抛出异常 55519.9 编写自定义异常 55719.10 小结 56019.11 复习题 56019.12 编程练习 561第20章 代表和事件 56220.1 代表 56320.1.1 代表数组及方法调用中作为参数的代表 56520.1.2 组播代表 56920.2 事件 57120.3 小结 57720.4 复习题 57720.5 编程练习 577第21章 预处理、XML文档及特性 57921.1 预处理程序指令 58021.1.1 用#define、#if和#endif排除和包含代码 58021.1.2 #undef:取消定义标识符 58221.1.3 #elif和#else 58221.1.4 #error和#warning 58221.1.5 #region和#endregion 58221.1.6 #line 58221.2 XML说明文档 58321.3 特性 58421.4 小结 58821.5 复习题 58821.6 编程练习 589第22章 文件I/O基础 59222.1 对文件的需要 59322.2 流基础和文件I/O 59322.3 文件I/O类概览 59322.4 FileInfo类 59422.5 用StreamReader和StreamWriter 进行文本文件输入和输出 59622.6 用FileStream类进行二进制输入和输出 60022.7 小结 60222.8 复习题 60222.9 编程练习 603第23章 递归基础知识 60423.1 不同方法的待决方法实例 60523.2 同一个方法的待决方法实例 60623.3 应用递归计算n的阶乘 60823.4 递归和迭代 61023.5 使用递归进行二分检索 61123.6 小结 61323.7 复习题 61423.8 编程练习 614附录A 复习题和编程练习答案 616
无
学习计算机以来,一直都是看primerplus系列的书,很不错的说。