当前位置:主页 > 书籍配套资源 > C#指南配套资源
《C# 4.0权威指南》源代码

《C# 4.0权威指南》源代码

  • 更新:2022-09-06
  • 大小:1.8 MB
  • 类别:C#指南
  • 作者:姜晓东
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书是一本不可多得的关于C# 4.0的教程和参考书。它在.NET 4.0和VS 2010的基础上,以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,由浅入深、循序渐进地讲解了C#的方方面面,精炼而全面地阐述了C# 4.0的各种特性,使读者能够快速理解、学习和使用C#。

封面图

目录

  • 前言
  • 第一部分.NET体系结构
  • 第1章 .NET体系结构2
  • 1.1 .NET框架概述3
  • 1.2 .NET的平台无关性4
  • 1.3 公共语言运行时5
  • 1.4 通用类型系统6
  • 1.4.1 值类型和引用类型7
  • 1.4.2 装箱和拆箱7
  • 1.5 公共语言规范9
  • 1.6 语言的互操作性9
  • 1.7 即时编译10
  • 1.8 中间语言10
  • 1.9 基类库11
  • 第2章 从“Hello World!”开始12
  • 2.1 一个简单的C#程序12
  • 2.2 编译和运行程序13
  • 2.2.1 在Visual Studio 2010中编译
  • 和运行13
  • 2.2.2 通过命令行编译和运行14
  • 2.3 详细介绍17
  • 2.4 小结19
  • 第二部分语法篇
  • 第3章 标识符和关键字22
  • 3.1 标识符22
  • 3.2 关键字23
  • 3.3 标识符的命名约定25
  • 3.4 小结25
  • 第4章 变量、常量和类型26
  • 4.1 变量26
  • 4.1.1 给变量命名26
  • 4.1.2 声明变量27
  • 4.1.3 变量的初始化27
  • 4.1.4 类型推断29
  • 4.1.5 变量的作用域30
  • 4.2 常量32
  • 4.3 数据类型33
  • 4.3.1 内置的值类型34
  • 4.3.2 内置的引用类型41
  • 4.3.3 指针类型46
  • 4.3.4 Nullable类型46
  • 4.3.5 dynamic类型47
  • 4.4 进阶阅读:关于动态语言运行时49
  • 第5章 类型转换51
  • 5.1 隐式类型转换51
  • 5.1.1 数值类型52
  • 5.1.2 引用类型53
  • 5.1.3 装箱54
  • 5.2 显式类型转换55
  • 5.2.1 数值类型56
  • 5.2.2 溢出检查57
  • 5.2.3 引用类型58
  • 5.2.4 拆箱58
  • 5.3 as和is运算符59
  • 第6章 表达式和运算符64
  • 6.1 表达式64
  • 6.2 运算符的类型65
  • 6.3 运算符的优先级65
  • 6.4 算术运算符66
  • 6.5 求余运算符67
  • 6.6 递增运算符和递减运算符68
  • 6.7 关系和类型检测运算符69
  • 6.8 相等性判断运算符70
  • 6.9 条件运算符72
  • 6.10 逻辑运算符73
  • 6.11 位运算符74
  • 6.12 赋值运算符75
  • 6.13 typeof运算符76
  • 6.14 运算符重载77
  • 6.14.1 运算符的重载77
  • 6.14.2 可重载的运算符78
  • 第7章 语句79
  • 7.1 什么是语句79
  • 7.2 程序的三种结构79
  • 7.2.1 顺序结构80
  • 7.2.2 分支结构80
  • 7.2.3 循环结构80
  • 7.3 条件语句81
  • 7.3.1 if语句81
  • 7.3.2 switch语句84
  • 7.4 跳转语句85
  • 7.4.1 break语句86
  • 7.4.2 continue语句87
  • 7.4.3 return语句87
  • 7.4.4 throw语句88
  • 7.4.5 goto语句89
  • 7.4.6 default语句89
  • 7.5 标签语句89
  • 7.5.1 标签90
  • 7.5.2 标签语句的有效范围90
  • 7.6 循环语句90
  • 7.6.1 while循环90
  • 7.6.2 do…while循环91
  • 7.6.3 for循环92
  • 7.6.4 foreach…in循环94
  • 7.7 using语句95
  • 第8章 方法97
  • 8.1 方法的构成97
  • 8.2 局部变量和常量98
  • 8.3 方法的调用99
  • 8.4 返回值101
  • 8.5 参数101
  • 8.5.1 形参102
  • 8.5.2 实参102
  • 8.5.3 新特性:命名和可选参数103
  • 8.6 四种类型的参数106
  • 8.6.1 按值传递参数106
  • 8.6.2 按引用传递参数—
  • 关键字:ref108
  • 8.6.3 输出参数—关键字:out111
  • 8.6.4 参数数组—关键字:
  • params113
  • 8.7 栈帧114
  • 8.8 递归115
  • 8.9 方法的重载116
  • 8.10 静态方法117
  • 第9章 类119
  • 9.1 类是什么119
  • 9.2 “Hello World!”程序回顾120
  • 9.3 类的声明121
  • 9.4 类的成员121
  • 9.4.1 字段122
  • 9.4.2 静态字段123
  • 9.4.3 方法124
  • 9.4.4 字段的初始化124
  • 9.4.5 属性126
  • 9.5 类的实例:对象135
  • 9.6 实例化中的内存分配135
  • 9.7 实例的成员136
  • 9.8 this关键字136
  • 9.9 访问修饰符137
  • 9.10 访问类的成员138
  • 9.10.1 从类内部访问成员139
  • 9.10.2 从类外部访问成员139
  • 9.10.3 从类外部访问静态成员140
  • 9.11 构造函数140
  • 9.12 对象初始化列表146
  • 9.13 析构函数148
  • 9.14 只读字段和常数150
  • 9.15 索引器151
  • 9.16 分部类型和分部方法—
  • 修饰符:partial152
  • 9.16.1 分部类153
  • 9.16.2 分部方法155
  • 9.17 注释158
  • 9.17.1 行注释158
  • 9.17.2 块注释159
  • 9.17.3 XML文档注释160
  • 第10章 继承163
  • 10.1 类的继承163
  • 10.2 访问继承的成员165
  • 10.3 使用new修饰符隐藏基类的成员166
  • 10.4 访问基类的成员167
  • 10.5 类的初始化顺序168
  • 10.6 在派生类中指定基类构造函数170
  • 10.7 类的访问修饰符173
  • 10.8 跨程序集的继承173
  • 10.9 密封类175
  • 10.10 静态类176
  • 10.11 扩展方法177
  • 10.12 派生类型的向上转型178
  • 第11章 多态181
  • 11.1 重载方法182
  • 11.2 虚方法185
  • 11.3 覆写方法186
  • 11.4 覆写标记为override的方法188
  • 11.5 抽象类及抽象方法190
  • 第12章 接口192
  • 12.1 定义接口193
  • 12.2 声明和实现接口193
  • 12.3 基类中的实现作为接口实现197
  • 12.4 实现多个接口198
  • 12.5 实现具有相同成员的接口199
  • 12.6 显式接口成员实现200
  • 12.7 调用显式接口成员实现202
  • 12.8 接口的派生203
  • 第13章 结构205
  • 13.1 什么是结构205
  • 13.2 结构是值类型206
  • 13.3 给结构赋值208
  • 13.4 构造函数209
  • 13.4.1 实例构造函数209
  • 13.4.2 静态构造函数211
  • 13.5 多态和可继承性212
  • 13.6 装箱和拆箱213
  • 13.7 结构和类的对比214
  • 13.7.1 字段初始化215
  • 13.7.2 性能215
  • 13.7.3 结构和类的适用场合分析217
  • 第14章 枚举218
  • 14.1 什么是枚举218
  • 14.2 设置枚举的底层数据类型221
  • 14.3 显式设置枚举的成员常量值222
  • 14.4 使用标志枚举223
  • 14.5 一些使用建议225
  • 第15章 委托226
  • 15.1 什么是委托226
  • 15.2 委托是引用类型227
  • 15.3 委托的声明和实例化227
  • 15.4 委托的组合229
  • 15.5 为委托添加一个方法230
  • 15.6 从委托中删除一个方法231
  • 15.7 委托在回调中的应用232
  • 15.8 委托中的协变和逆变234
  • 15.9 匿名方法236
  • 15.10 l表达式238
  • 第16章 事件240
  • 16.1 什么是事件240
  • 16.2 事件和委托的关系241
  • 16.3 如何声明事件241
  • 16.4 订阅事件242
  • 16.5 触发事件245
  • 16.6 使用和扩展EventArgs类246
  • 16.7 使用自定义委托247
  • 16.8 事件访问器249
  • 第17章 泛型251
  • 17.1 什么是泛型251
  • 17.2 泛型类型254
  • 17.3 泛型类型的声明和实例化255
  • 17.4 类型参数258
  • 17.5 类型参数的约束259
  • 17.5.1 where子句260
  • 17.5.2 约束类型和顺序261
  • 17.6 泛型类261
  • 17.7 泛型结构264
  • 17.8 泛型接口265
  • 17.9 泛型委托267
  • 17.10 泛型方法268
  • 17.11 扩展方法和泛型类270
  • 17.12 协变和逆变271
  • 第18章 数组273
  • 18.1 数组的声明273
  • 18.2 数组的类型274
  • 18.3 数组派生自Array对象275
  • 18.4 实例化数组276
  • 18.5 初始化数组277
  • 18.5.1 显式初始化一维数组278
  • 18.5.2 显式初始化矩形数组及要点279
  • 18.5.3 隐式类型数组281
  • 18.6 访问数组元素282
  • 18.7 交错数组282
  • 18.7.1 交错数组的声明283
  • 18.7.2 交错数组的实例化283
  • 18.7.3 交错数组的初始化284
  • 18.8 矩形数组和交错数组的对比285
  • 18.9 使用foreach和for语句访问数组287
  • 18.9.1 foreach语句287
  • 18.9.2 for语句288
  • 18.9.3 迭代变量289
  • 18.10 数组协变291
  • 18.11 从Array对象继承的成员292
  • 18.12 数组的浅复制和深复制294
  • 第19章 集合298
  • 19.1 集合接口298
  • 19.2 常用的几种集合类型300
  • 19.2.1 ArrayList301
  • 19.2.2 Hashtable304
  • 19.2.3 Queue和Queue307
  • 19.2.4 SortedList309
  • 19.2.5 Stack和Stack310
  • 19.2.6 BitArray313
  • 19.2.7 List314
  • 19.2.8 HashSet323
  • 19.3 自定义集合326
  • 19.3.1 CollectionBase327
  • 19.3.2 ReadOnlyCollectionBase331
  • 19.4 迭代器333
  • 19.5 泛型集合接口支持协变和逆变336
  • 19.6 LINQ to Objects339
  • 19.6.1 LINQ简介339
  • 19.6.2 查询语法340
  • 19.6.3 方法语法340
  • 19.6.4 查询操作的组成341
  • 19.6.5 关于查询变量342
  • 19.6.6 查询语法和方法语法的统一342
  • 第20章 字符串与正则表达式343
  • 20.1 理解字符串343
  • 20.2 字符串的常用成员345
  • 20.3 字符串格式化351
  • 20.4 使用StringBuilder类355
  • 20.5 正则表达式357
  • 20.5.1 正则表达式基本语法358
  • 20.5.2 .NET对于正则表达式的
  • 支持363
  • 20.5.3 开始使用正则表达式366
  • 第21章 异常处理368
  • 21.1 异常类368
  • 21.2 抛出异常369
  • 21.3 捕获异常370
  • 21.4 自定义的异常类373
  • 21.5 异常处理的原则374
  • 第22章 命名空间和程序集375
  • 22.1 命名空间375
  • 22.1.1 使用命名空间376
  • 22.1.2 使用别名378
  • 22.2 程序集378
  • 22.2.1 程序集的结构380
  • 22.2.2 程序集清单381
  • 22.2.3 私有程序集和共享程序集382
  • 22.2.4 应用程序域383
  • 22.2.5 创建动态程序集并动态
  • 加载执行384
  • 22.2.6 全局程序集缓存387
  • 第23章 预处理指令391
  • 23.1 什么是预处理指令391
  • 23.2 观察一段示例391
  • 23.3 预处理指令集393
  • 23.4 #define和#undef指令393
  • 23.5 条件编译指令394
  • 23.6 #warning和#error指令396
  • 23.7 #line指令396
  • 23.8 #region和#endregion指令399
  • 23.9 #pragma warning指令400
  • 第24章 元数据和特性401
  • 24.1 元数据401
  • 24.1.1 从IntelliSense谈起405
  • 24.1.2 访问元数据406
  • 24.2 特性(Attribute)412
  • 24.2.1 什么是特性414
  • 24.2.2 创建自定义特性418
  • 24.2.3 访问特性424
  • 24.2.4 常用特性425
  • 24.2.5 特性应用完整示例433
  • 第25章 异步编程和多线程编程437
  • 25.1 进程和线程437
  • 25.2 BeginInvoke和EndInvoke439
  • 25.3 IAsyncResult接口和
  • AsyncResult类440
  • 25.4 异步编程的4种方法441
  • 25.4.1 使用EndInvoke441
  • 25.4.2 使用WaitHandle442
  • 25.4.3 轮询444
  • 25.4.4 回调445
  • 25.5 多线程编程446
  • 25.5.1 Thread类447
  • 25.5.2 使用线程池448
  • 25.5.3 线程同步450
  • 25.5.4 死锁453
  • 第26章 I/O操作457
  • 26.1 文件和目录457
  • 26.1.1 File和Directory457
  • 26.1.2 FileInfo和DirectoryInfo459
  • 26.1.3 文件I/O的改进462
  • 26.2 流467
  • 26.3 异步操作470
  • 26.4 网络流的使用472
  • 26.5 序列化476
  • 26.5.1 BinaryFormatter478
  • 26.5.2 SoapFormatter480
  • 26.5.3 XML序列化483
  • 26.6 独立存储机制485
  • 第27章 XML处理488
  • 27.1 System.Xml命名空间488
  • 27.2 使用DOM489
  • 27.3 XPath和XSLT493
  • 27.4 LINQ to XML498
  • 27.4.1 LINQ to XML类库介绍498
  • 27.4.2 创建XML文档498
  • 27.4.3 使用LINQ进行遍历和查询499
  • 27.4.4 修改XML文档500
  • 第28章 增强的COM Interop502
  • 28.1 Dynamic lookup502
  • 28.1.1 dynamic关键字503
  • 28.1.2 访问Python代码504
  • 28.1.3 访问COM对象506
  • 28.2 改进的参数传递508
  • 28.3 完整示例512
  • 第29章 并行编程515
  • 29.1 任务并行库516
  • 29.1.1 并发和并行517
  • 29.1.2 并行编程架构517
  • 29.2 Parallel类518
  • 29.2.1 For方法重载一520
  • 29.2.2 For方法重载二521
  • 29.2.3 For方法重载三525
  • 29.3 Task类和Task类526
  • 29.4 数据并行528
  • 29.5 任务并行531
  • 29.6 TaskFactory类和TaskFactory 类533
  • 29.6.1 任务创建选项535
  • 29.6.2 并发选项548
  • 29.6.3 后续任务选项550
  • 29.7 PLINQ559
  • 第三部分附录
  • 附录A Visual Studio 2010
  • 快速入门564
  • 附录B C#编码规范597

资源下载

资源下载地址1:https://pan.baidu.com/s/1T1voFeNhf-SbkFUz0tQ0wA

相关资源

网友留言