图书介绍
C#4.0完全参考手册【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)希尔特著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302240433
- 出版时间:2010
- 标注页数:906页
- 文件大小:48MB
- 文件页数:924页
- 主题词:C语言-程序设计
PDF下载
下载说明
C#4.0完全参考手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 C#语言3
第1章 C#的起源3
1.1 C#的族谱3
1.1.1 C语言:现代编程的开端3
1.1.2 OOP和C++语言的诞生4
1.1.3 Internet和Java的出现4
1.1.4 C#的诞生5
1.1.5 C#的发展6
1.2 C#如何与.NET Framework相关7
1.3 公共语言运行时的工作原理7
1.4 托管和非托管代码8
第2章 C#概述9
2.1 面向对象编程9
2.1.1 封装10
2.1.2 多态10
2.1.3 继承11
2.2 简单示例一11
2.2.1 C#命令行编译器csc.exe11
2.2.2 使用Visual Studio IDE12
2.2.3 逐行分析第一个示例程序16
2.3 处理语法错误18
2.4 改写示例一19
2.5 简单示例二19
2.6 另一种数据类型21
2.7 两种控制语句23
2.7.1 if语句23
2.7.2 for循环25
2.8 代码块26
2.9 分号、定位和缩进27
2.10 C#语言的关键字28
2.11 标识符29
2.12 .NET Framework类库30
第3章 数据类型、字面量和变量31
3.1 数据类型的重要性31
3.2 C#的值类型31
3.3 整数类型32
3.4 浮点类型34
3.5 decimal类型36
3.6 字符类型37
3.7 布尔类型38
3.8 自定义输出格式39
3.9 字面量42
3.9.1 十六进制字面量42
3.9.2 字符转义序列43
3.9.3 字符串字面量43
3.10 变量45
3.10.1 初始化变量45
3.10.2 动态初始化变量46
3.10.3 隐式类型的变量46
3.11 变量的作用域和生命周期48
3.12 类型转换和强制类型转换50
3.12.1 自动类型转换50
3.12.2 强制转换不兼容的类型51
3.13 表达式中的类型转换54
第4章 运算符59
4.1 算术运算符59
4.2 关系和逻辑运算符63
4.3 赋值运算符67
4.4 按位运算符69
4.4.1 按位与、或、异或和一元取反运算符69
4.4.2 移位运算符75
4.4.3 按位复合赋值78
4.5 问号(?)运算符78
4.6 空格和圆括号79
4.7 运算符优先级80
第5章 程序控制语句81
5.1 if语句81
5.1.1 if语句嵌套82
5.1.2 if-else-if阶梯结构83
5.2 switch语句84
5.3 for循环88
5.4 while循环96
5.5 do-while循环97
5.6 foreach循环98
5.7 使用break语句退出循环98
5.8 使用continue语句101
5.9 goto语句102
第6章 类和对象105
6.1 类的基础知识105
6.1.1 类的通用形式105
6.1.2 定义类106
6.2 创建对象的方式110
6.3 引用类型的变量和赋值111
6.4 方法111
6.4.1 给Building类添加方法112
6.4.2 从方法返回114
6.4.3 返回值115
6.4.4 使用参数117
6.4.5 给Building类添加带参数的方法119
6.4.6 避免产生不可到达的代码121
6.5 构造函数121
6.5.1 带参数的构造函数122
6.5.2 给Building类添加构造函数123
6.6 new运算符124
6.7 垃圾回收和析构函数125
6.8 this关键字127
第7章 数组和字符串131
7.1 数组131
7.2 多维数组135
7.2.1 二维数组135
7.2.2 三维或更多维的数组137
7.2.3 初始化多维数组137
7.3 交错数组139
7.4 数组引用赋值141
7.5 Length属性142
7.6 隐式类型的数组145
7.7 foreach循环147
7.8 字符串150
7.8.1 构造string类型对象151
7.8.2 操作字符串151
7.8.3 字符串数组155
7.8.4 字符串是不可改变的157
7.8.5 在switch语句中使用字符串158
第8章 方法和类159
8.1 控制对类成员的访问159
8.1.1 C#的访问修饰符159
8.1.2 公有访问和私有访问的应用161
8.1.3 访问控制:案例研究161
8.2 给方法传递引用166
8.3 使用ref和out参数170
8.3.1 使用ref关键字170
8.3.2 使用out关键字172
8.3.3 对引用参数使用ref和out关键字174
8.4 使用数量可变的参数176
8.5 返回对象178
8.6 方法重载182
8.7 构造函数重载187
8.8 对象初始化器193
8.9 可选实参194
8.9.1 可选实参与重载196
8.9.2 可选实参与多义性196
8.9.3 可选实参的实际示例197
8.10 命名实参198
8.11 Main()方法200
8.11.1 从Main()方法返回值200
8.11.2 给Main()方法传递参数200
8.12 递归202
8.13 理解static关键字205
8.14 static类210
第9章 运算符重载213
9.1 运算符重载基础213
9.1.1 重载二元运算符214
9.1.2 重载一元运算符216
9.2 处理针对C#内置类型的运算220
9.3 重载关系运算符225
9.4 重载true和false227
9.5 重载逻辑运算符229
9.5.1 重载逻辑运算符的简单方式229
9.5.2 使用短路运算符231
9.6 转换运算符236
9.7 运算符重载的注意事项240
9.8 运算符重载的另一个示例241
第10章 索引器和属性245
10.1 索引器245
10.1.1 创建一维索引器245
10.1.2 索引器重载249
10.1.3 索引器不需要底层的数组251
10.1.4 多维索引器252
10.2 属性255
10.2.1 自动实现属性260
10.2.2 对属性使用对象初始化器260
10.2.3 属性限制261
10.3 对存取器使用访问修饰符261
10.4 使用索引器和属性264
第11章 继承271
11.1 继承基础271
11.2 成员访问和继承274
11.3 构造函数和继承278
11.4 继承和名称隐藏285
11.5 创建多层的层次结构288
11.6 构造函数的调用291
11.7 基类引用和派生对象292
11.8 虚方法和重写296
11.8.1 重写方法的原因300
11.8.2 应用虚方法300
11.9 使用抽象类304
11.10 使用sealed关键字阻止继承308
11.11 object类308
11.11.1 装箱和拆箱310
11.11.2 object类型是否是通用数据类型312
第12章 接口、结构和枚举315
12.1 接口315
12.2 使用接口类型的引用320
12.3 接口属性322
12.4 接口索引器324
12.5 接口的继承326
12.6 接口继承引起的名称隐藏327
12.7 显式实现327
12.8 在接口和抽象类之间选择330
12.9 .NET标准接口330
12.10 结构330
12.11 枚举335
12.11.1 初始化枚举337
12.11.2 指定枚举的基本类型338
12.11.3 使用枚举338
第13章 异常处理341
13.1 SystemException类341
13.2 异常处理的基础341
13.2.1 使用try和catch关键字342
13.2.2 一个简单的异常示例342
13.2.3 另一个异常示例344
13.3 未捕获异常的后果345
13.4 使用异常可以妥善地处理错误347
13.5 使用多条catch子句347
13.6 捕获所有的异常348
13.7 嵌套try块350
13.8 抛出异常351
13.9 finally语句353
13.10 进一步分析Exception类355
13.11 派生异常类358
13.12 捕获派生类异常361
13.13 checked和unchecked关键字363
第14章 I/O系统367
14.1 C#的I/O依赖于数据流367
14.1.1 字节数据流和字符数据流367
14.1.2 预定义数据流367
14.2 数据流类368
14.2.1 Stream类368
14.2.2 字节数据流类369
14.2.3 字符数据流包装类369
14.2.4 二进制数据流371
14.3 控制台I/O371
14.3.1 读取控制台输入371
14.3.2 使用ReadKey()方法373
14.3.3 写入控制台输出375
14.4 文件数据流和面向字节的文件I/O操作376
14.4.1 打开和关闭文件376
14.4.2 使用FileStream类从文件中读取字节378
14.4.3 写入文件380
14.4.4 使用FileStream类复制文件382
14.5 基于字符的文件I/O操作383
14.5.1 使用StreamWriter类383
14.5.2 使用StreamReader类385
14.6 重定向标准数据流386
14.7 读取和写入二进制数据388
14.7.1 BinaryWriter类388
14.7.2 BinaryReader类389
14.7.3 二进制I/O操作的程序示例390
14.8 随机访问文件395
14.9 使用MemoryStream类396
14.10 StringReader和StringWriter类399
14.11 File类400
14.11.1 使用Copy()方法复制文件400
14.11.2 使用Exists()和GetLastAccessTime()方法401
14.12 将数值型字符串转换为内部表示格式402
第15章 委托、事件和Lambda表达式407
15.1 委托407
15.1.1 委托的方法组转换410
15.1.2 使用实例方法作为委托410
15.1.3 多播委托412
15.1.4 协变和逆变414
15.1.5 System.Delegate类416
15.1.6 使用委托的原因416
15.2 匿名函数416
15.3 匿名方法416
15.3.1 给匿名方法传递参数417
15.3.2 从匿名方法中返回值418
15.3.3 在匿名方法中使用外部变量419
15.4 Lambda表达式421
15.4.1 Lambda运算符421
15.4.2 表达式Lambda422
15.4.3 语句Lambda424
15.5 事件427
15.5.1 多播委托事件的示例428
15.5.2 作为事件处理程序的实例方法和static方法的区别430
15.5.3 使用事件存取器432
15.5.4 事件的其他功能437
15.6 对事件使用匿名方法和Lambda表达式437
15.7 .NET事件的指导原则438
15.8 事件的应用:案例研究441
第16章 名称空间、预处理器和程序集445
16.1 名称空间445
16.1.1 名称空间的声明445
16.1.2 名称空间可以避免名称冲突448
16.1.3 using指令449
16.1.4 using指令的另一种形式451
16.1.5 名称空间的合成453
16.1.6 嵌套名称空间454
16.1.7 全局名称空间456
16.1.8 使用名称空间别名限定符(∷)456
16.2 预处理器460
16.2.1 #define460
16.2.2 #if和#endif461
16.2.3 #else和#elif462
16.2.4 #undef464
16.2.5 #error464
16.2.6 #warning465
16.2.7 #line465
16.2.8 #region和#endregion465
16.2.9 #pragma465
16.3 程序集和internal访问修饰符466
第17章 运行时类型标识、反射和特性469
17.1 运行时类型标识469
17.1.1 使用is运算符测试类型469
17.1.2 使用as运算符470
17.1.3 使用typeof运算符472
17.2 反射473
17.3 使用反射475
17.3.1 获取方法的相关信息475
17.3.2 GetMethods()方法的另一种形式478
17.3.3 使用反射调用方法479
17.3.4 获取Type对象的构造函数481
17.3.5 从程序集获得类型486
17.3.6 全自动类型查询491
17.4 特性493
17.4.1 特性基础494
17.4.2 位置形参和命名形参497
17.5 3个内置特性501
17.5.1 AttributeUsage特性501
17.5.2 Conditional特性501
17.5.3 Obsolete特性502
第18章 泛型505
18.1 泛型的概念505
18.2 一个简单的泛型示例506
18.2.1 泛型类型基于类型实参而有所不同509
18.2.2 泛型如何实现类型安全509
18.3 使用两个类型形参的泛型类512
18.4 泛型类的通用形式513
18.5 类型约束513
18.5.1 基类约束514
18.5.2 接口约束522
18.5.3 new()构造函数约束525
18.5.4 引用类型约束和值类型约束527
18.5.5 使用约束建立两个类型形参之间的关系529
18.5.6 使用多个约束530
18.6 创建类型形参的默认值531
18.7 泛型结构533
18.8 创建泛型方法534
18.8.1 调用泛型方法时显式地指定类型实参536
18.8.2 为泛型方法指定约束536
18.9 泛型委托537
18.10 泛型接口538
18.11 比较同一个类型形参的实例542
18.12 泛型类的层次结构546
18.12.1 使用泛型基类546
18.12.2 泛型派生类548
18.13 重写泛型类中的虚方法549
18.14 重载使用类型形参的方法550
18.15 泛型类型形参中的协变和逆变552
18.15.1 在泛型接口中使用协变552
18.15.2 在泛型接口中使用逆变555
18.15.3 委托变体558
18.16 泛型类型的实例化560
18.17 使用泛型时的一些限制561
18.18 泛型小结561
第19章 LINQ563
19.1 LINQ的基础知识564
19.1.1 简单查询564
19.1.2 查询可以多次执行566
19.1.3 查询中的数据类型的关联方式567
19.1.4 查询的通用形式568
19.2 使用where子句筛选值568
19.3 使用orderby子句排序结果570
19.4 深入讨论select子句573
19.5 使用嵌套的from子句577
19.6 使用group子句分组结果578
19.7 使用into子句创建延续580
19.8 在查询中使用let子句创建变量582
19.9 使用join子句连接两个序列583
19.10 匿名类型586
19.11 创建组连接588
19.12 查询方法590
19.12.1 基本查询方法591
19.12.2 使用查询方法创建查询592
19.12.3 查询语法与查询方法的对比594
19.12.4 更多与查询相关的扩展方法594
19.13 延期执行查询和立即执行查询596
19.14 表达式树597
19.15 扩展方法599
19.16 PLINQ601
第20章 不安全代码、指针、可空类型、dynamic类型和其他主题603
20.1 不安全代码603
20.1.1 指针的基础知识604
20.1.2 使用unsafe关键字605
20.1.3 使用fixed修饰符606
20 1.4 通过指针访问结构成员607
20.1.5 指针运算607
20.1.6 指针的比较609
20.1.7 指针和数组609
20.1.8 指针和字符串611
20.1.9 多重间接寻址612
20.1.10 指针数组613
20.1.11 sizeof613
20.1.12 stackalloc613
20.1.13 创建固定大小的缓冲区614
20.2 可空类型615
20.2.1 可空类型基础616
20.2.2 表达式中的可空对象617
20.2.3 “??”运算符618
20.2.4 在可空对象上使用关系和逻辑运算符619
20.3 部分类型620
20.4 部分方法621
20.5 使用dynamic关键字创建dynamic类型622
20.6 COM互操作性626
20.7 友元程序集627
20.8 其他关键字627
20.8.1 lock关键字627
20.8.2 readonly关键字628
20.8.3 const和volatile关键字629
20.8.4 using语句629
20.8.5 extern关键字630
第Ⅱ部分 C#类库研究637
第21章 研究System名称空间637
21.1 System名称空间的成员637
21.2 Math类639
21.3 与内置值类型对应的.NET结构644
21.3.1 整型结构645
21.3.2 浮点类型结构647
21.3.3 Decimal结构650
21.3.4 Char结构653
21.3.5 Boolean结构658
21.4 Array类659
21.4.1 排序和搜索数组667
21.4.2 反转数组670
21.4.3 复制数组671
21.4.4 使用谓词672
21.4.5 使用Action委托673
21.5 BitConverter类674
21.6 使用Random类产生随机数676
21.7 内存管理和GC类677
21.8 Object类679
21.9 Tuple类679
21.10 IComparable和IComparable〈T〉接口679
21.11 IEquatable〈T〉接口680
21.12 IConvertible接口680
21.13 ICloneable接口680
21.14 IFormatProvider和IFormattable接口682
21.15 IObservable〈T〉和IObserver〈T〉接口683
第22章 字符串和格式化685
22.1 C#中的字符串685
22.2 String类685
22.2.1 字符串构造函数686
22.2.2 String类的字段、索引器和属性686
22.2.3 字符串运算符687
22.2.4 字符串方法687
22.2.5 填充和剪裁字符串704
22.2.6 插入、删除和替换706
22.2.7 改变字母大小写707
22.2.8 使用Substring()方法708
22.2.9 字符串扩展方法708
22.3 格式化708
22.3.1 格式化概述709
22.3.2 数字格式说明符709
22.3.3 理解实参编号711
22.4 使用String.Format()和ToString()方法格式化数据712
22.4.1 使用String.Format()方法格式化值712
22.4.2 使用ToString()方法格式化数据714
22.5 自定义数字格式715
22.6 格式化日期和时间719
22.6.1 自定义日期和时间格式721
22.6.2 格式化时间间隔723
22.7 格式化枚举725
第23章 多线程编程第1部分727
23.1 多线程基础727
23.2 Thread类728
23.2.1 创建和启动线程729
23.2.2 一些简单的改进731
23.2.3 创建多个线程732
23.3 确定线程结束的时间734
23.4 为线程传递实参737
23.5 IsBackground属性739
23.6 线程优先级739
23.7 同步741
23.7.1 实现同步的另一种方式745
23.7.2 Monitor类和lock关键字的关系746
23.8 使用Wait()、Pulse()和PulseAll()方法实现线程通信747
23.9 死锁和竞争条件751
23.10 使用MethodImplAttribute特性751
23.11 使用互斥锁和信号量753
23.11.1 互斥锁753
23.11.2 信号量757
23.12 使用事件760
23.13 Interlocked类762
23.14 .NET 4.0添加的同步类764
23.15 通过Abort()方法终止线程764
23.15.1 Abort()方法的另一种形式766
23.15.2 取消Abort()方法767
23.16 挂起和恢复线程769
23.17 判断线程的状态769
23.18 使用主线程769
23.19 .NET 4.0添加的其他多线程功能771
23.20 多线程提示771
23.21 启动独立的任务771
第24章 多线程编程第2部分:研究任务并行库和PLINQ773
24.1 并行编程的两种方式773
24.2 Task类774
24.2.1 创建任务774
24.2.2 使用任务ID777
24.3 使用等待方法778
24.4 使用TaskFactory类启动任务781
24.5 将Lambda表达式用作任务782
24.6 创建任务延续783
24.7 从任务返回值785
24.8 取消任务和使用AggregateException异常787
24.9 其他一些任务功能790
24.10 Parallel类790
24.10.1 通过Invoke()方法并行化任务791
24.10.2 使用For()方法793
24.10.3 使用ForEach()方法799
24.11 研究PLINQ800
24.11.1 ParallelEnumerable类800
24.11.2 使用AsParallel()方法并行化查询801
24.11.3 使用AsOrdered()方法802
24.11.4 取消并行查询方法802
24.11.5 其他PLINQ功能804
24.11.6 有关PLINQ的注意事项804
第25章 集合、枚举器和迭代器805
25.1 集合概述805
25.2 非泛型集合806
25.2.1 非泛型接口806
25.2.2 DictionaryEntry结构811
25.2.3 非泛型集合类811
25.3 使用BitArray类存储位827
25.4 专用集合829
25.5 泛型集合830
25.5.1 泛型接口830
25.5.2 KeyValuePair〈TKey,TValue〉结构834
25.5.3 泛型集合类834
25.6 并行集合853
25.7 在集合中存储用户自定义的类857
25.8 实现IComparable接口860
25.8.1 为非泛型集合实现IComparable接口860
25.8.2 为泛型集合实现IComparable〈T〉接口861
25.9 使用IComparer接口863
25.9.1 使用非泛型的IComparer接口863
25.9.2 使用泛型的IComparer〈T〉接口865
25.10 使用StringComparer类866
25.11 通过枚举器访问集合866
25.11.1 使用枚举器867
25.11.2 使用IDictionary Enumerator接口868
25.12 实现IEnumerable和IEnumerator接口869
25.13 使用迭代器871
25.13.1 停用迭代器873
25.13.2 使用多条yield指令874
25.13.3 创建命名迭代器874
25.13.4 创建泛型迭代器876
25.14 集合初始化器877
第26章 使用System.Net名称空间通过Internet联网879
26.1 System.Net名称空间的成员879
26.2 统一资源标识符881
26.3 Internet访问基础881
26.3.1 WebRequest类882
26.3.2 WebResponse类884
26.3.3 HttpWebRequest和HttpWebResponse类885
26.3.4 第一个简单的示例885
26.4 处理网络错误887
26.4.1 Create()方法产生的异常887
26.4.2 GetResponse()方法产生的异常887
26.4.3 GetResponseStream()方法产生的异常888
26.4.4 使用异常处理888
26.5 Uri类890
26.6 访问附加的HTTP响应信息891
26.6.1 访问报头892
26.6.2 访问cookie893
26.6.3 使用LastModified属性894
26.7 MiniCrawler:案例研究895
26.8 使用WebClient类898
附录A 文档注释快速参考903
A.1 XML注释标记903
A.2 编译文档注释904
A.3 XML文档示例905
热门推荐
- 783320.html
- 2948117.html
- 1349349.html
- 2714842.html
- 729597.html
- 1403951.html
- 3399451.html
- 2842482.html
- 2397379.html
- 3048652.html
- http://www.ickdjs.cc/book_790348.html
- http://www.ickdjs.cc/book_192457.html
- http://www.ickdjs.cc/book_1148279.html
- http://www.ickdjs.cc/book_2507280.html
- http://www.ickdjs.cc/book_2472390.html
- http://www.ickdjs.cc/book_970918.html
- http://www.ickdjs.cc/book_2283520.html
- http://www.ickdjs.cc/book_2197136.html
- http://www.ickdjs.cc/book_571168.html
- http://www.ickdjs.cc/book_1474797.html