图书介绍
易学C#【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- 马伟编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115211989
- 出版时间:2009
- 标注页数:410页
- 文件大小:213MB
- 文件页数:426页
- 主题词:C语言-程序设计
PDF下载
下载说明
易学C#PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
预备课:学习从这里开始1
1.软件=程序+文档1
2.程序起什么作用2
3.为何要面向对象2
4.什么是UML3
5..NET与C#4
谈微软公司的.NET战略4
C#的产生与特点5
C#与.NET的关系6
6.开启C#的钥匙——兴趣与正确的学习方法7
7.习题练习8
第1部分 C#与UML基础第1章 开篇经典——“Hello,World”11
1.1 Hello,World11
1.2 程序的结构分析13
1.2.1 命名空间13
1.2.2 类和类的方法13
1.2.3 程序的输入输出14
1.3 程序的执行起点——Main函数14
1.4 控制台的输入和输出14
1.4.1 控制台的输入:Read和ReadLine15
1.4.2 控制台的输出:Write和WriteLine15
1.5 程序的注释15
1.5.1 模块(类)注释规范16
1.5.2 类属性注释规范16
1.5.3 方法注释规范16
1.5.4 代码间注释规范16
1.6 习题练习17
第2章 数据类型和表达式18
2.1 数据类型简介18
2.2 值类型19
2.2.1 简单类型19
2.2.2 结构类型22
2.2.3 枚举类型23
2.3 引用类型24
2.4 null和void24
2.4.1 null24
2.4.2 void24
2.5 变量和常量25
2.5.1 变量25
2.5.2 常量29
2.6 运算处理29
2.6.1 算术运算30
2.6.2 赋值运算32
2.6.3 关系运算32
2.6.4 逻辑运算33
2.6.5 位运算33
2.6.6 条件运算35
2.6.7 其他运算符36
2.6.8 运算符的优先级别36
2.7 指针类型37
2.7.1 指针的定义与声明37
2.7.2 指针的内容37
2.7.3 指针的运算38
2.7.4 指针的使用40
2.8 习题练习41
第3章 数据类型转换43
3.1 装箱和拆箱43
3.1.1 装箱(Boxing)43
3.1.2 拆箱(Unboxing)44
3.2 隐式数据类型转换45
3.2.1 隐式数值类型转换45
3.2.2 隐式枚举类型转换46
3.2.3 隐式引用类型转换47
3.3 显式数据类型转换48
3.3.1 显式数值类型转换48
3.3.2 显式枚举类型转换50
3.3.3 显式引用类型转换50
3.4 习题练习51
第4章 计算控制——结构化程序设计53
4.1 如果——条件语句53
4.1.1 如果,那么——if53
4.1.2 如果,那么;否则——if,else55
4.1.3 如果中的如果——嵌套if,else56
4.1.4 如果,那么;否则的另一种表达方式——?:57
4.1.5 多条件选择——switch58
4.2 会转圈的语句——循环语句60
4.2.1 for循环60
4.2.2 while循环63
4.2.3 do/while循环65
4.2.4 foreach循环66
4.3 跳出循环——跳转语句67
4.3.1 使用break和continue语句的区别67
4.3.2 饱受争议的goto语句68
4.3.3 return语句的使用70
4.4 C#预处理器指令70
4.4.1 使用预处理指令——#define和#undef70
4.4.2 条件编译——#if、#elif、#else和#endif71
4.4.3 警告与错误信息——#warning和#error72
4.4.4 可视编辑器提示——#region和#endregion72
4.4.5 指定行号——#line72
4.4.6 关闭警告消息——#pragma72
4.5 程序员加油站——递归法73
4.5.1 递归法概述73
4.5.2 递归的精髓——求解汉诺塔问题73
4.6 习题练习75
第5章 字符串、数组与集合77
5.1 理解字符串77
5.1.1 字符串类型定义77
5.1.2 字符串类型应用实例79
5.1.3 string与String的区别82
5.2 存储盒子的“仓库”——数组82
5.2.1 数组的定义82
5.2.2 二维数组85
5.2.3 多维数组和交错数组87
5.3 程序员加油站——数组的应用88
5.3.1 把数组作为参数传递给方法88
5.3.2 使用数组模拟栈操作89
5.3.3 数据的排序与冒泡排序算法91
5.4 一个与数组相似的新类型——集合92
5.4.1 集合的概述93
5.4.2 集合类的使用实例93
5.4.3 集合与数组的区别97
5.5 习题练习97
第6章 C#程序员UML建模基础100
6.1 为什么要建模100
6.2 UML概述101
6.3 用例建模101
6.3.1 用例图101
6.3.2 用例描述102
6.3.3 用例建模实例102
6.4 类图103
6.4.1 绘制类图104
6.4.2 类图中的各种关系105
6.5 活动图107
6.6 状态图107
6.7 序列图108
6.8 习题练习109
第2部分 C#与面向对象程序设计第7章 初识面向对象程序设计113
7.1 万物皆为对象113
7.2 初识封装114
7.3 类和对象114
7.3.1 类的声明114
7.3.2 类的成员115
7.3.3 类的成员的可见性116
7.3.4 对象的创建与使用117
7.3.5 静态成员与非静态成员118
7.3.6 this关键字118
7.4 对象的创建与销毁119
7.4.1 构造函数120
7.4.2 静态构造函数122
7.4.3 析构函数124
7.5 类的执行工具——方法124
7.5.1 方法的声明125
7.5.2 方法的返回值125
7.5.3 方法的参数126
7.5.4 方法的重载127
7.6 域、属性和索引指示器128
7.6.1 域128
7.6.2 属性131
7.6.3 索引指示器133
7.7 再论封装134
7.7.1 用传统的读、写方法封装134
7.7.2 用属性来实现封装135
7.8 命名空间135
7.8.1 命名空间的声明136
7.8.2 成员与类型声明137
7.8.3 使用指示符137
7.9 习题练习140
第8章 复用现有的代码——继承与多重继承142
8.1 继承的意义142
8.1.1 继承的引入142
8.1.2 为何要使用继承143
8.2 用UML图描述继承144
8.3 父与子——类的继承145
8.3.1 基类与派生类145
8.3.2 继承中的构造函数151
8.3.3 访问和隐藏基类方法152
8.3.4 虚方法与重写方法153
8.3.5 抽象类和抽象方法154
8.3.6 密封类和密封方法155
8.4 继承与访问修饰符156
8.4.1 可见性访问修饰符156
8.4.2 其他访问修饰符157
8.5 双亲与子——多重继承157
8.5.1 水陆两用汽车的类图设计157
8.5.2 用接口实现多重继承158
8.5.3 用扩展方法实现多重继承160
8.6 C#的继承规则161
8.7 再论继承与封装的关系161
8.8 程序员加油站——又论冒泡排序算法162
8.9 习题练习166
第9章 改写对象的行为——多态169
9.1 笔与其派生类的写方法169
9.2 多态的类型170
9.2.1 编译时的多态性170
9.2.2 运行时的多态性170
9.3 多态的实现172
9.3.1 通过接口实现的多态性172
9.3.2 通过继承实现的多态性174
9.3.3 通过抽象类实现的多态性174
9.4 程序员加油站——经典的图形游戏176
9.4.1 类图分析176
9.4.2 代码实现与分析177
9.4.3 游戏的客户端181
9.5 习题练习183
第10章 多功能的运算符——运算符重载184
10.1 引入运算符重载184
10.2 运算符重载的规则185
10.3 一元运算符的重载186
10.4 二元运算符的重载188
10.5 比较运算符的重载190
10.6 习题练习191
第11章 软件模块之间的协定——接口192
11.1 打印机程序的困惑192
11.2 接口的意义193
11.2.1 软件的多层设计思考193
11.2.2 组件与接口193
11.2.3 组件化程序设计思考194
11.3 接口的定义195
11.4 接口的成员195
11.5 在UML中对接口的描述197
11.6 接口的继承与多重继承198
11.7 接口成员访问199
11.8 接口的实现200
11.8.1 在类中实现接口201
11.8.2 显式实现接口成员203
11.8.3 显式与隐式实现接口成员的区别205
11.8.4 接口映射205
11.8.5 接口的重实现209
11.9 抽象类与接口210
11.9.1 在抽象类中实现接口210
11.9.2 抽象与接口的区别210
11.9.3 抽象与接口的使用211
11.10 接口作为返回值与参数211
11.11 程序员加油站——打印机程序的设计214
11.12 习题练习216
第12章 面向对象设计原则与UML描述218
12.1 腐化的软件设计218
12.1.1 设计的臭味218
12.1.2 软件为何会腐化220
12.2 简单就是美——单一职责原则(SRP)220
12.2.1 从Communication类的设计来看待单一职责原则221
12.2.2 分离耦合的职责222
12.3 修改封闭扩展开放——开放—封闭原则(OCP)222
12.3.1 开封—封闭原则概述222
12.3.2 银行储蓄业务的分析与设计223
12.4 子类型替换基类型——Liskov替换原则(LSP)226
12.4.1 Liskov替换原则概述226
12.4.2 违反Liskov替换原则的场景226
12.4.3 用提取公共部分的方法来代替继承228
12.5 依赖于抽象——依赖倒置原则(DIP)229
12.5.1 依赖倒置原则概述229
12.5.2 再论银行储蓄业务的设计230
12.6 分离接口——接口隔离原则(ISP)232
12.6.1 接口污染232
12.6.2 分离客户就是分离接口234
12.6.3 使用委托分离接口235
12.6.4 使用多重继承分离接口235
12.7 习题练习236
第3部分 C#语言高级特性第13章 程序的体检医生——异常处理239
13.1 异常处理概述239
13.2 C#异常处理类240
13.3 try、catch和finally241
13.3.1 try和catch的用法241
13.3.2 finally的用法244
13.4 把异常传给调用者245
13.4.1 调用者处理245
13.4.2 抛出异常245
13.4.3 重发异常246
13.4.4 添加异常信息247
13.5 用户自定义异常248
13.5.1 定义自己的异常类248
13.5.2 从自己的代码中抛出异常248
13.6 细说异常使用249
13.6.1 何时考虑抛出异常249
13.6.2 在异常处理程序中做什么249
13.6.3 在何处放置异常处理程序250
13.6.4 异常与返回错误代码的对比250
13.6.5 永远不要预测bug造成的后果能够被异常处理程序所捕获250
13.7 习题练习250
第14章 房屋中介与租房——委托与事件252
14.1 从房屋中介与租房看待委托与事件252
14.2 又论“Hello,World”253
14.3 委托的概述254
14.3.1 委托的声明254
14.3.2 将方法绑定到委托256
14.4 事件257
14.4.1 引入事件258
14.4.2 声明事件260
14.4.3 使用事件260
14.4.4 访问器形式的事件261
14.4.5 在接口中声明事件263
14.5 多播委托264
14.6 委托中的协变和逆变266
14.7 匿名方法268
14.7.1 什么是匿名方法268
14.7.2 匿名方法的参数与返回值268
14.7.3 匿名方法块规则269
14.7.4 匿名方法的外部变量269
14.8 习题练习272
第15章 程序集与反射274
15.1 再论“Hello,World”274
15.1.1 创建“Hello,World”的业务逻辑类库274
15.1.2 详解C#程序集版本控制文件275
15.1.3 创建“Hello,World”应用层277
15.2 反射的概述278
15.2.1 什么是反射278
15.2.2 反射的作用279
15.3 反射的实际使用280
15.3.1 反射AppDomain的程序集280
15.3.2 利用反射获取类型信息281
15.3.3 通过反射创建类型的实例282
15.3.4 利用反射动态调用类成员284
15.4 反射的性能286
15.5 习题练习286
第16章 序列化与反序列化287
16.1 序列化的概述287
16.1.1 从权限系统来看待序列化和反序列化287
16.1.2 序列化的作用288
16.1.3 为序列化配置对象289
16.2 序列化和反序列化方式290
16.3 使用BinaryFormatter进行序列化291
16.4 使用SoapFormatter进行序列化293
16.5 使用XmlSerializer进行序列化295
16.6 自定义序列化297
16.6.1 使用ISerializable自定义序列化298
16.6.2 使用特性自定义序列化301
16.7 序列化过程中的步骤302
16.8 序列化准则303
16.9 习题练习303
第17章 项目小组和程序员——进程和线程304
17.1 进程与线程概述304
17.1.1 从打印工资报表看待进程与线程304
17.1.2 进程与线程的关系306
17.2 .NET平台下与进程进行交互306
17.2.1 Process类简介306
17.2.2 简单的进程操作实例307
17.3 初识多线程操作310
17.3.1 System.Threading概述310
17.3.2 一个简单的线程例子312
17.3.3 ThreadStart的使用313
17.3.4 线程的并行操作314
17.3.5 终止线程316
17.3.6 前台线程与后台线程318
17.3.7 线程的优先级319
17.4 线程中存在的问题321
17.4.1 竞争条件321
17.4.2 锁定323
17.5 线程同步325
17.5.1 没有同步的情况325
17.5.2 lock语句326
17.5.3 Monitor类328
17.5.4 使用lock与Monitor来解决生产者与消费者的问题330
17.5.5 Events类333
17.5.6 互斥对象336
17.6 多线程的自动管理336
17.6.1 线程池337
17.6.2 定时器340
17.7 习题练习343
第18章 万能模板——泛型345
18.1 泛型的引入345
18.1.1 为什么要使用泛型345
18.1.2 创建和使用泛型347
18.1.3 命名规则348
18.2 泛型类348
18.2.1 声明泛型类348
18.2.2 类型参数349
18.2.3 泛型类的继承350
18.2.4 泛型类的成员350
18.2.5 泛型类中的静态变量351
18.2.6 泛型类中的静态构造函数351
18.2.7 访问受保护的成员352
18.2.8 泛型类中的方法重载352
18.2.9 创建泛型类的注意事项353
18.3 泛型接口353
18.3.1 实现接口的惟一性353
18.3.2 显式接口成员实现354
18.4 泛型委托355
18.5 泛型方法355
18.5.1 创建和使用泛型方法355
18.5.2 abstract、irtual和override泛型方法356
18.5.3 泛型静态方法357
18.5.4 类型实参推断358
18.6 参数约束358
18.7 习题练习360
第19章 C# 3.0语言新特性364
19.1 隐式类型364
19.1.1 隐式类型局部变量的声明与使用364
19.1.2 隐式类型数组365
19.1.3 隐式类型局部变量的使用限制366
19.1.4 隐式类型局部变量的使用注意事项366
19.2 匿名类型367
19.2.1 引入匿名类型367
19.2.2 创建和使用匿名类型368
19.2.3 匿名类型与隐式类型变量的区别369
19.3 扩展方法369
19.3.1 定义扩展方法369
19.3.2 导入扩展方法370
19.3.3 调用扩展方法370
19.3.4 扩展方法使用注意事项372
19.4 对象和集合初始化器372
19.4.1 引入对象初始化器372
19.4.2 在初始化语法中调用自定义构造函数374
19.4.3 初始化内部类型375
19.4.4 集合初始化器376
19.5 Lambda表达式377
19.5.1 创建Lambda表达式377
19.5.2 Lambda表达式转换378
19.5.3 类型推断379
19.5.4 重载抉择381
19.5.5 表达式树381
19.6 习题练习382
第4部分 基于UML的面向对象分析与设计过程第20章 基于UML的面向对象分析与设计过程384
20.1 细说需求分析384
20.1.1 需求分析流程385
20.1.2 基于Web通用框架的需求描述387
20.2 构造业务用例图387
20.2.1 确定系统的参与者387
20.2.2 确定系统的业务用例388
20.2.3 绘制业务用例图389
20.3 使用活动图来描述业务用例389
20.3.1 绘制操作子系统插件菜单的活动图389
20.3.2 绘制管理用户权限的活动图390
20.4 构造系统用例图390
20.5 用例规约391
20.5.1 基本流392
20.5.2 备选流393
20.5.3 特殊需求393
20.5.4 前置条件与后置条件393
20.5.5 描述用例规约实例393
20.6 绘制业务领域类图396
20.7 系统架构设计397
20.8 数据库设计398
20.8.1 数据库表设计398
20.8.2 表关系设计399
20.9 总体类图设计400
20.10 模块详细设计与编码401
20.10.1 数据库通用操作组件:IBHDataAccess401
20.10.2 用户权限管理接口:IBHPowerMangageInterface402
20.10.3 用户权限管理业务逻辑操作层:IBHPowerManageClass404
20.10.4 用户权限管理页面表示层:IBHPowerManage405
20.10.5 Web通用框架:IBHWebFramework406
20.11 Web通用框架的部署与测试408
20.12 习题练习410
热门推荐
- 3529490.html
- 2096322.html
- 1088778.html
- 296734.html
- 407460.html
- 388652.html
- 3375799.html
- 265824.html
- 3766110.html
- 1417633.html
- http://www.ickdjs.cc/book_1855469.html
- http://www.ickdjs.cc/book_403225.html
- http://www.ickdjs.cc/book_2255601.html
- http://www.ickdjs.cc/book_59789.html
- http://www.ickdjs.cc/book_1285617.html
- http://www.ickdjs.cc/book_2657375.html
- http://www.ickdjs.cc/book_969356.html
- http://www.ickdjs.cc/book_647629.html
- http://www.ickdjs.cc/book_3336837.html
- http://www.ickdjs.cc/book_2410530.html