图书介绍
C#本质论2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)Mark Michaelis著;周靖译 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115181879
- 出版时间:2008
- 标注页数:498页
- 文件大小:91MB
- 文件页数:521页
- 主题词:C语言-程序设计-教材
PDF下载
下载说明
C#本质论PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 C#概述1
1.1 Hello,World1
1.1.1 应用程序的编译和运行2
1.1.2 托管执行和公共语言基础结构3
1.2 C#语法基础4
1.2.1 C#关键字4
1.2.2 类型定义6
1.2.3 Main6
1.2.4 语句和语句分隔符7
1.2.5 空白8
1.3 使用变量9
1.3.1 数据类型9
1.3.2 变量的声明10
1.3.3 变量的赋值10
1.3.4 变量的使用11
1.4 控制台输入和输出11
1.4.1 从控制台获取输入12
1.4.2 将输出写入控制台13
1.5 注释14
1.6 CIL和ILDASM16
1.7 小结18
第2章 数据类型19
2.1 基本数值类型19
2.1.1 整数类型19
2.1.2 浮点类型20
2.1.3 decimal类型21
2.1.4 字面值21
2.2 更多基本类型24
2.2.1 布尔类型24
2.2.2 字符类型25
2.2.3 字符串26
2.3 null和void31
2.3.1 null31
2.3.2 void32
2.4 类型的分类32
2.4.1 值类型32
2.4.2 引用类型33
2.5 可空修饰符34
2.6 数据类型之间的转换35
2.6.1 显式转型35
2.6.2 隐式转型37
2.6.3 不进行转型的类型转换38
2.7 数组39
2.7.1 数组的声明39
2.7.2 数组的实例化和赋值40
2.7.3 数组的使用43
2.7.4 字符串作为数组使用47
2.7.5 常见错误49
2.8 小结50
第3章 运算符和控制流51
3.1 运算符51
3.1.1 一元运算符正和负52
3.1.2 二元算术运算符52
3.1.3 圆括号运算符57
3.1.4 赋值运算符58
3.1.5 递增和递减运算符58
3.1.6 常量表达式61
3.2 流控制概述61
3.2.1 if语句63
3.2.2 嵌套if64
3.3 代码块65
3.4 作用域67
3.5 布尔表达式68
3.5.1 关系运算符和相等性运算符69
3.5.2 逻辑布尔运算符69
3.5.3 逻辑求反运算符70
3.5.4 条件运算符71
3.6 按位运算符72
3.6.1 移位运算符72
3.6.2 按位运算符73
3.6.3 按位赋值运算符75
3.6.4 按位取反运算符75
3.7 控制流语句75
3.7.1 while和do/while循环75
3.7.2 for循环77
3.7.3 foreach循环79
3.7.4 switch语句81
3.8 跳转语句83
3.8.1 break语句83
3.8.2 continue语句85
3.8.3 goto语句87
3.9 C#预处理器指令88
3.9.1 排除和包含代码88
3.9.2 定义预处理器符号89
3.9.3 生成错误和警告90
3.9.4 关闭警告消息90
3.9.5 nowarn:<warnlist>选项90
3.9.6 指定行号91
3.9.7 可视编辑器提示91
3.10 小结92
第4章 方法和参数94
4.1 方法的调用95
4.1.1 命名空间96
4.1.2 类型名称97
4.1.3 作用域97
4.1.4 方法名称98
4.1.5 参数98
4.1.6 方法返回值98
4.1.7 语句与方法调用的比较98
4.2 方法的声明99
4.2.1 参数声明100
4.2.2 方法返回值声明101
4.3 using指令102
4.4 Main()的返回值和参数105
4.5 参数107
4.5.1 值参数107
4.5.2 引用参数(ref)108
4.5.3 输出参数(out)109
4.5.4 参数数组(params)111
4.6 递归113
4.7 方法重载115
4.8 用异常实现基本错误处理117
4.8.1 捕捉错误118
4.8.2 使用tbrow语句报告错误124
4.9 小结126
第5章 类127
5.1 类的定义和实例化130
5.2 实例字段131
5.2.1 实例字段的声明132
5.2.2 实例字段的访问132
5.3 实例方法133
5.4 使用this关键字134
5.5 访问修饰符139
5.6 构造器140
5.6.1 构造器的声明141
5.6.2 默认构造器142
5.6.3 构造器的重载143
5.6.4 使用this调用另一个构造器143
5.7 静态145
5.7.1 静态字段146
5.7.2 静态方法148
5.7.3 静态构造器148
5.7.4 静态类149
5.8 const和readonly修饰符151
5.8.1 const151
5.8.2 readonly151
5.9 属性152
5.9.1 属性的声明153
5.9.2 命名规范155
5.9.3 静态属性156
5.9.4 提供属性验证156
5.9.5 只读和只写属性157
5.9.6 为getter和setter指定访问修饰符158
5.9.7 属性作为虚字段使用159
5.9.8 属性和方法调用不允许作为ref或out参数值使用161
5.10 嵌套类162
5.11 分部类163
5.12 小结165
第6章 继承166
6.1 派生166
6.1.1 基类型和派生类型之间的转型169
6.1.2 对参数“协变,,和“逆变”的支持170
6.1.3 private访问修饰符171
6.1.4 protected访问修饰符172
6.1.5 单一继承173
6.1.6 密封类175
6.2 基类的重写176
6.2.1 virtual修饰符176
6.2.2 new修饰符180
6.2.3 sealed修饰符183
6.2.4 base成员183
6.2.5 构造器184
6.3 抽象类185
6.4 一切最终都从System*Object派生189
6.5 使用is运算符验证基础类型190
6.6 使用as运算符进行转换190
6.7 小结192
第7章 接口193
7.1 接口概述193
7.2 通过接口来实现多态性194
7.3 接口实现198
7.3.1 显式成员实现199
7.3.2 隐式成员实现200
7.3.3 显式接口实现与隐式接口实现的比较201
7.4 “实现类”与其接口之间的转型201
7.5 接口继承202
7.6 多接口继承203
7.7 通过接口来实现多重继承204
7.8 版本控制207
7.9 接口与类的比较208
7.10 小结208
第8章 值类型209
8.1 结构209
8.1.1 struct的初始化212
8.1.2 default运算符的使用213
8.1.3 值类型的继承和接口214
8.2 装箱214
8.3 枚举219
8.3.1 枚举之间的类型兼容性221
8.3.2 枚举和字符串之间的转换222
8.3.3 枚举作为标志使用223
8.4 小结226
第9章 合式类型227
9.1 重写object的成员227
9.1.1 重写ToString()227
9.1.2 重写GetHashCode()228
9.1.3 重写Equals()229
9.1.4 相等性实现的指导原则235
9.2 运算符重载235
9.2.1 比较运算符235
9.2.2 二元运算符236
9.2.3 赋值与二元运算符的结合238
9.2.4 条件逻辑运算符238
9.2.5 一元运算符238
9.2.6 转换运算符239
9.2.7 转换运算符的指导原则240
9.3 引用其他程序集241
9.3.1 更改程序集目标241
9.3.2 类型封装242
9.3.3 引用程序集243
9.4 定义命名空间243
9.5 XML注释246
9.5.1 将XML注释与代码构造关联到一起246
9.5.2 生成XML文档文件248
9.6 垃圾回收249
9.7 资源清理251
9.7.1 终结器251
9.7.2 使用using语句进行确定性终结253
9.7.3 垃圾回收和终结255
9.7.4 资源利用和终结的指导原则256
9.8 小结256
第10章 异常处理257
10.1 多异常类型257
10.2 捕捉异常258
10.3 常规catch块259
10.4 异常处理的指导原则261
10.5 定义自定义异常262
10.6 小结266
第11章 泛型267
11.1 如果C#没有泛型267
11.2 泛型类型概述271
11.2.1 泛型类的使用271
11.2.2 简单泛型类的定义273
11.2.3 泛型的优点274
11.2.4 类型参数命名的指导原则274
11.2.5 泛型接口和struct74
11.2.6 构造器和终结器的定义276
11.2.7 默认值的指定277
11.2.8 多个类型参数278
11.2.9 嵌套泛型类型279
11.2.10 “类型参数”兼容的泛型类之间的类型兼容性279
11.3 约束280
11.3.1 接口约束282
11.3.2 基类约束284
11.3.3 struct/class约束284
11.3.4 多个约束285
11.3.5 构造器约束285
11.3.6 约束继承286
11.4 泛型方法289
11.4.1 类型推断290
11.4.2 约束的指定291
11.5 泛型的内部机制292
11.5.1 基于值类型的泛型的实例化294
11.5.2 基于引用类型的泛型的实例化294
11.6 小结295
第12章 集合296
12.1 主要集合类296
12.1.1 列表集合:List<T>和ArrayList297
12.1.2 字典集合:Dictionary<TKey,TValue>和Hashtable300
12.1.3 已排序集合:SortedDic-tionary<TKey,TValue>和SortedList<T>304
12.1.4 栈集合:Stack<T>和Stack305
12.1.5 队列集合:Queue<T>和Queue306
12.1.6 链表:LinkedList<T>306
12.2 集合类接口概述307
12.2.1 IList<T>和IDictionary<TKey,TValue>307
12.2.2 IComparable<T>308
12.2.3 ICollection<T>310
12.2.4 使用foreach循环来迭代310
12.3 提供一个索引运算符314
12.4 返回Null或者空集合317
12.5 迭代器317
12.5.1 迭代器的定义318
12.5.2 迭代器语法318
12.5.3 从迭代器yield值319
12.5.4 迭代器和状态321
12.5.5 更多的迭代器例子322
12.5.6 将yieldreturn语句放到循环中324
12.5.7 取消更多的迭代:yieldbreak325
12.5.8 在单个类中创建多个迭代器327
12.5.9 yield语句的特征328
12.6 小结328
第13章 委托和事件329
13.1 方法指针329
13.1.1 定义场景330
13.1.2 委托数据类型331
13.1.3 委托的内部机制332
13.1.4 委托类型的定义333
13.1.5 委托的实例化333
13.1.6 匿名方法337
13.1.7 外部变量340
13.2 multicast委托和Observer模式342
13.2.1 使用委托来编写Observer模式343
13.2.2 顺序调用349
13.3 事件354
13.3.1 事件的作用354
13.3.2 事件的声明355
13.3.3 编程规范356
13.3.4 泛型和委托357
13.3.5 自定义事件的实现360
13.4 小结361
第14章 反射和attribute362
14.1 反射362
14.1.1 使用System.Type访问元数据363
14.1.2 成员调用364
14.1.3 泛型类型上的反射369
14.2 attribute371
14.2.1 自定义attribute374
14.2.2 查找attribute374
14.2.3 使用构造器来初始化attribute375
14.2.4 System.AttributeUsage-Attribute379
14.2.5 具名参数380
14.3 小结391
第15章 多线程处理392
15.1 独立线程的运行和控制394
15.1.1 线程的启动395
15.1.2 线程管理396
15.2 向线程传递参数397
15.3 线程池处理400
15.4 未处理的异常402
15.5 同步403
15.5.1 使用Monitor来同步405
15.5.2 使用lock关键字406
15.5.3 lock对象的选择408
15.5.4 为什么要避免在this和typeof(type)上锁定408
15.5.5 将字段声明为volatile408
15.5.6 使用System.Threading.Interlocked类409
15.5.7 多个线程时的事件通知410
15.5.8 同步设计最佳实践411
15.5.9 更多的同步类型411
15.6 计时器416
15.7 小结420
第16章 多线程处理模式421
16.1 AsynchronousResults模式421
16.1.1 AsynchronousResults模式概述422
16.1.2 向轮换线程传入数据以及从轮换线程传出数据424
16.1.3 接收线程完成通知428
16.1.4 传递任意状态430
16.1.5 AsynchronousResults1、结432
16.2 BackgroundWorker模式433
16.2.1 模式的建立435
16.2.2 异常处理436
16.3 Windows窗体437
16.4 小结439
第17章 平台互操作性和不安全的代码440
17.1 平台调用441
17.1.1 外部函数的声明441
17.1.2 参数的数据类型441
17.1.3 使用ref而不是指针442
17.1.4 为顺序布局使用Struct-LayoutAttribute443
17.1.5 错误处理444
17.1.6 使用SafeHandle446
17.1.7 外部函数的调用448
17.1.8 用包装简化API调用450
17.1.9 函数指针映射到委托451
17.1.10 指导原则451
17.2 指针和地址451
17.2.1 不安全的代码451
17.2.2 指针的声明452
17.2.3 指针的赋值454
17.2.4 指针的解引用455
17.2.5 引用类型的成员的访问457
17.3 小结457
第18章 CLI460
18.1 CLI的定义460
18.2 CLI实现461
18.3 C#编译成机器码462
18.4 运行时462
18.4.1 垃圾回收464
18.4.2 .NET的垃圾回收464
18.4.3 类型安全464
18.4.4 代码访问安全性465
18.4.5 平台可移植性465
18.4.6 性能466
18.5 应用程序域466
18.6 程序集、清单和模块466
18.7 公共中间语言468
18.8 公共类型系统468
18.9 公共语言规范469
18.10 基类库469
18.11 元数据469
18.12 小结470
附录A 下载和安装C#编译器与CLI平台472
A.1 Microsoft.NET472
A.2 Mono473
附录B 完整源代码清单474
附录C C#2.0主题497
热门推荐
- 2829474.html
- 1801007.html
- 2809053.html
- 1198607.html
- 1739451.html
- 978755.html
- 968715.html
- 3795684.html
- 3649180.html
- 785011.html
- http://www.ickdjs.cc/book_3797573.html
- http://www.ickdjs.cc/book_2534281.html
- http://www.ickdjs.cc/book_3785658.html
- http://www.ickdjs.cc/book_507846.html
- http://www.ickdjs.cc/book_2564875.html
- http://www.ickdjs.cc/book_2797075.html
- http://www.ickdjs.cc/book_2257482.html
- http://www.ickdjs.cc/book_3850235.html
- http://www.ickdjs.cc/book_3545302.html
- http://www.ickdjs.cc/book_712054.html