图书介绍
C#2.0完全参考手册PDF|Epub|txt|kindle电子书版本网盘下载
![C#2.0完全参考手册](https://www.shukui.net/cover/35/31713543.jpg)
- (美)Herbert Schildt著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302158428
- 出版时间:2007
- 标注页数:869页
- 文件大小:39MB
- 文件页数:884页
- 主题词:C语言-程序设计-手册
PDF下载
下载说明
C#2.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框架相关7
1.3 公共语言运行库的工作原理8
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集成环境12
2.2.3 逐行分析第一个示例程序15
2.3 处理语法错误18
2.4 改写示例一18
2.5 简单示例二19
2.6 另一种数据类型21
2.7 两种控制语句22
2.7.1 if语句23
2.7.2 for循环24
2.8 代码块25
2.9 分号、定位和缩进27
2.10 C#语言的关键字28
2.11 标识符29
2.12 C#类库30
第3章 数据类型、直接量和变量31
3.1 数据类型的重要性31
3.2 C#的数据类型31
3.3 整数类型32
3.4 浮点类型34
3.5 decimal类型36
3.6 字符类型38
3.7 布尔类型38
3.8 自定义输出格式39
3.9 直接量42
3.9.1 十六进制直接量43
3.9.2 字符转义序列43
3.9.3 字符串直接量44
3.10 变量46
3.10.1 初始化变量46
3.10.2 动态初始化变量46
3.11 变量的作用域和生命周期47
3.12 类型转换50
3.12.1 自动类型转换50
3.12.2 强制类型转换51
3.13 表达式中的类型转换54
第4章 运算符59
4.1 算术运算符59
4.2 关系和逻辑运算符63
4.3 赋值运算符68
4.4 位运算符69
4.4.1 按位与、或、异或和取反运算符69
4.4.2 移位运算符75
4.4.3 位复合赋值78
4.5 问号运算符“?”78
4.6 空白符和圆括号80
4.7 运算符优先级80
第5章 程序控制语句81
5.1 if语句81
5.1.1 if语句嵌套82
5.1.2 if-else-if阶梯结构83
5.2 switch语句85
5.3 for循环88
5.4 while循环96
5.5 do-while循环98
5.6 foreach循环99
5.7 使用break语句退出循环99
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 方法112
6.4.1 给Building类添加方法112
6.4.2 从方法返回115
6.4.3 返回值115
6.4.4 使用参数117
6.4.5 给Building类添加带参数的方法120
6.4.6 避免产生不可到达的代码122
6.5 构造函数122
6.5.1 带参数的构造函数123
6.5.2 给Building类添加构造函数124
6.6 new运算符125
6.7 垃圾收集和析构函数126
6.8 this关键字129
第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 foreach循环146
7.7 字符串149
7.7.1 构建字符串149
7.7.2 操作字符串150
7.7.3 字符串数组153
7.7.4 字符串是不可变的154
7.7.5 在switch语句中使用字符串155
第8章 方法和类157
8.1 控制对类成员的访问157
8.1.1 C#的访问限定符157
8.1.2 公有访问和私有访问的应用159
8.1.3 访问控制:案例分析160
8.2 给方法传递引用164
8.3 使用ref和out参数168
8.3.1 ref关键字169
8.3.2 out关键字170
8.3.3 对引用参数使用ref和out173
8.4 数量可变的参数174
8.5 返回对象177
8.6 方法重载181
8.7 构造函数重载186
8.8 Main()方法191
8.8.1 从Main()返回值191
8.8.2 给Main()传递参数192
8.9 递归194
8.10 static关键字196
8.11 静态类202
第9章 运算符重载205
9.1 运算符重载基础205
9.1.1 重载二元运算符206
9.1.2 重载一元运算符208
9.2 针对C#内置类型的数据重载运算符212
9.3 重载关系运算符216
9.4 重载true和false218
9.5 重载逻辑运算符221
9.5.1 一种重载逻辑运算符的简单方法221
9.5.2 使用短路运算符223
9.6 类型转换运算符227
9.7 运算符重载的注意事项231
9.8 运算符重载的另一个示例232
第10章 索引器和属性237
10.1 索引器237
10.1.1 创建一维索引器237
10.1.2 索引器重载241
10.1.3 索引器不需要一个潜在的数组243
10.1.4 多维索引器244
10.2 属性247
10.3 对访问器使用访问限定符252
10.4 使用索引器和属性253
第11章 继承259
11.1 继承基础259
11.2 成员访问和继承262
11.3 构造函数和继承266
11.4 继承和名称隐藏273
11.5 创建多级层次结构276
11.6 构造函数的调用279
11.7 基类引用和派生对象280
11.8 虚方法和重写284
11.8.1 为什么要重写方法?288
11.8.2 应用虚方法288
11.9 使用抽象类292
11.10 使用sealed来阻止继承296
11.11 object类296
11.11.1 装箱和拆箱298
11.11.2 object是通用数据类型吗?300
第12章 接口、结构和枚举303
12.1 接口303
12.2 使用接口类型的引用308
12.3 接口属性311
12.4 接口索引器312
12.5 接口的继承314
12.6 接口继承引起的名称隐藏315
12.7 显式实现315
12.7.1 创建私有实现316
12.7.2 使用显式实现来消除多义性317
12.8 是接口还是抽象类?318
12.9 .NET标准接口319
12.10 接口的实例研究319
12.11 结构324
12.12 枚举329
12.12.1 初始化一个枚举331
12.12.2 指定枚举的基本类型331
12.12.3 使用枚举331
第13章 异常处理335
13.1 System.Exception类335
13.2 异常处理的基础336
13.2.1 使用try和catch336
13.2.2 一个简单的异常示例337
13.2.3 另一个异常示例338
13.3 未捕获异常的后果339
13.4 使用多个catch语句342
13.5 捕获所有的异常343
13.6 嵌套try模块344
13.7 抛出异常345
13.8 finally语句347
13.9 进一步分析异常349
13.10 派生异常类352
13.11 捕获派生类异常356
13.12 checked语句和unchecked语句357
第14章 I/O系统361
14.1 C#的I/O依赖于数据流361
14.1.1 字节数据流和字符数据流361
14.1.2 预定义数据流362
14.1.3 数据流类362
14.1.4 Stream类362
14.1.5 字节数据流类363
14.1.6 字符数据流封装类364
14.1.7 二进制数据流365
14.2 控制台I/O365
14.2.1 读取控制台输入365
14.2.2 使用ReadKey()方法367
14.2.3 写入控制台输出369
14.3 文件数据流和面向字节的文件I/O操作370
14.3.1 打开和关闭文件370
14.3.2 从FileStream中读取字节372
14.3.3 写入文件373
14.3.4 使用FileStream复制文件374
14.4 基于字符的文件I/O操作376
14.4.1 StreamWriter类376
14.4.2 StreamReader类378
14.5 重定向标准数据流379
14.6 读取和写入二进制数据381
14.6.1 BinaryWriter381
14.6.2 BinaryReader382
14.6.3 二进制I/O操作的程序示例383
14.7 随机访问文件388
14.8 使用MemoryStream390
14.9 StringReader和StringWriter392
14.10 把数值型字符串转换为内部表示格式393
第15章 委托和事件397
15.1 委托397
15.1.1 委托的方法组转换400
15.1.2 用委托引用类的实例方法400
15.1.3 多播委托402
15.1.4 匿名方法404
15.1.5 给匿名方法传递参数405
15.1.6 从匿名方法中返回一个值406
15.1.7 在匿名方法中使用外部变量407
15.1.8 协变和逆变409
15.1.9 System.Delegate410
15.1.10 使用委托的原因411
15.2 事件411
15.2.1 多播委托事件的示例413
15.2.2 事件处理程序中实例方法和静态方法的区别414
15.2.3 使用事件访问器417
15.2.4 事件的其他特性421
15.3 .NET事件的规则421
15.4 在事件处理中使用匿名方法424
15.5 事件的应用:案例分析425
第16章 命名空间、预处理器和程序集429
16.1 命名空间429
16.1.1 命名空间的声明430
16.1.2 命名空间可以避免名称冲突432
16.1.3 using命令433
16.1.4 using命令的另一种形式435
16.1.5 命名空间的合成436
16.1.6 嵌套命名空间438
16.1.7 默认的命名空间439
16.1.8 使用命名空间限定符(∷)440
16.2 预处理器444
16.2.1 #define命令444
16.2.2 #if命令和#endif命令444
16.2.3 #else命令和#elif命令446
16.2.4 #undef命令448
16.2.5 #error命令448
16.2.6 #warning命令448
16.2.7 #line命令448
16.2.8 #region命令和#endregion命令449
16.2.9 #pragma命令449
16.3 程序集和internal访问修饰符450
第17章 运行时类型标识、反射和属性453
17.1 运行时类型标识453
17.1.1 is运算符453
17.1.2 as运算符454
17.1.3 typeof运算符456
17.2 反射457
17.3 使用反射459
17.3.1 获取方法的相关信息459
17.3.2 GetMethods()的另一种形式462
17.3.3 使用反射来调用方法463
17.3.4 获取Type对象的构造函数466
17.3.5 从程序集获得类型470
17.3.6 全自动类型查询475
17.4 特性478
17.4.1 特性基础478
17.4.2 创建特性478
17.4.3 添加特性479
17.4.4 获取对象的特性479
17.4.5 位置参数和命名参数481
17.5 3个内置特性485
17.5.1 AttributeUsage特性485
17.5.2 Conditional特性486
17.5.3 Obsolete特性487
第18章 泛型489
18.1 泛型概念489
18.2 一个简单的泛型示例490
18.2.1 泛型类型因类型参数的不同而不同493
18.2.2 泛型如何实现类型安全493
18.3 一个使用两个类型参数的泛型类496
18.4 泛型类的通用形式497
18.5 类型约束498
18.5.1 基类约束498
18.5.2 接口约束506
18.5.3 new()构造函数约束511
18.5.4 引用类型和值类型约束512
18.5.5 使用约束来建立两个类型参数之间的关系514
18.5.6 多重约束515
18.6 创建类型参数的默认对象516
18.7 泛型结构518
18.8 创建泛型方法519
18.8.1 调用泛型方法时显式地指定类型参数522
18.8.2 为泛型方法指定约束522
18.9 泛型委托523
18.10 泛型接口526
18.11 比较同一类型参数的两个实例的值530
18.12 泛型类的层次结构533
18.12.1 使用泛型基类533
18.12.2 泛型派生类535
18.13 重写泛型类中的虚拟方法536
18.14 重载带类型参数的方法538
18.15 泛型类型的实例化539
18.16 使用泛型时的一些局限540
18.17 小结540
第19章 不安全代码、指针和其他主题541
19.1 不安全代码541
19.1.1 指针类型542
19.1.2 unsafe关键字543
19.1.3 fixed修饰符544
19.1.4 通过指针访问结构成员545
19.1.5 指针运算545
19.1.6 指针的比较547
19.1.7 指针和数组548
19.1.8 指针和字符串550
19.1.9 多重间接寻址550
19.1.10 指针数组551
19.1.11 sizeof552
19.1.12 stackalloc552
19.1.13 创建固定大小的缓冲区553
19.2 空类型554
19.2.1 空类型基础555
19.2.2 表达式中的空对象556
19.2.3 ??运算符557
19.2.4 在空对象上使用关系和逻辑运算符558
19.3 局部类定义559
19.4 友元程序集560
19.5 其他关键字561
19.5.1 lock关键字561
19.5.2 readonly关键字561
19.5.3 using语句562
19.6 const和volatile修饰符563
19.7 extern关键字563
19.7.1 声明extern方法563
19.7.2 声明extern程序集别名563
第Ⅱ部分 C#类库研究569
第20章 System命名空间569
20.1 System的成员569
20.2 Math类571
20.3 与内置数值类型对应的.NET结构576
20.3.1 整型结构577
20.3.2 浮点类型结构579
20.3.3 Decimal结构583
20.3.4 Char结构587
20.3.5 Boolean结构592
20.4 Array类593
20.4.1 排序和查找602
20.4.2 反转数组604
20.4.3 复制数组605
20.4.4 谓词606
20.4.5 Action委托607
20.4.6 BitConverter类608
20.5 用Random产生随机数610
20.6 内存管理和GC类611
20.7 Object类613
20.8 IComparable和IComparable<T>接口613
20.9 IConvertible接口614
20.10 ICloneable接口614
20.11 IFormatProvider接口和IFormattable接口616
20.12 IEquatable<T>接口617
第21章 字符串和格式化619
21.1 C#中的字符串619
21.2 String类620
21.2.1 字符串构造函数620
21.2.2 String类的字段、索引和属性621
21.2.3 字符串运算符621
21.2.4 字符串方法621
21.2.5 填充和剪裁字符串637
21.2.6 插入、删除和替换638
21.2.7 改变字母大小写640
21.2.8 使用Substring()方法640
21.3 格式化类型641
21.3.1 格式化类型概述641
21.3.2 数值型数据的格式642
说明符642
21.3.3 参数编号643
21.4 使用String.Format()和ToString()格式化数据644
21.4.1 使用String.Format()格式化数值644
21.4.2 使用ToString()格式化数据647
21.5 自定义数字格式648
21.6 格式化日期和时间651
21.7 格式化枚举656
第22章 多线程程序设计659
22.1 多线程基础659
22.2 Thread类660
22.2.1 创建和启动线程660
22.2.2 一些简单的改进663
22.2.3 创建多个线程664
22.3 确定线程结束的时间667
22.4 为线程传递参数669
22.5 IsBackground属性672
22.6 线程优先级672
22.7 同步675
22.7.1 实现同步的另一种方式678
22.7.2 锁定静态方法680
22.7.3 Monitor类和锁680
22.8 使用Wait()、Pulse()和PulseAll()实现线程通信680
22.8.1 Wait()和Pulse()的示例681
22.8.2 死锁685
22.9 MethodImplAttribute属性685
22.10 互斥锁和信号量687
22.10.1 互斥锁687
22.10.2 信号量691
22.11 同步事件694
22.12 Interlocked类697
22.13 终止线程698
22.13.1 Abort()的另一种形式700
22.13.2 取消Abort()701
22.14 挂起和恢复线程703
22.15 判断线程的状态703
22.16 使用主线程703
22.17 多线程编程提示705
22.18 开启独立任务705
第23章 集合、枚举器和迭代器707
23.1 集合概述707
23.2 非泛型集合708
23.2.1 非泛型接口709
23.2.2 DictionaryEntry结构712
23.2.3 非泛型集合类713
23.3 使用BitArray类存储位729
23.4 专用集合732
23.5 泛型集合732
23.5.1 泛型接口733
23.5.2 KeyValuePair<TK,TV>结构736
23.5.3 泛型集合类736
23.6 在集合中存储用户自定义的类754
23.7 实现IComparable接口756
23.7.1 为非泛型集合实现IComparable接口756
23.7.2 为泛型集合实现IComparable<T>接口758
23.8 使用IComparer接口759
23.8.1 非泛型IComparer760
23.8.2 泛型IComparer761
23.9 通过枚举器访问集合763
23.9.1 使用枚举器763
23.9.2 使用IDictionary Enumerator764
23.10 实现IEnumerable和Ienumerator接口766
23.11 迭代器767
23.11.1 停用迭代器770
23.11.2 使用多个yield语句770
23.11.3 创建命名迭代器771
23.11.4 创建泛型迭代器773
第24章 通过Internet连网775
24.1 System.Net的成员775
24.2 统一资源标识符777
24.3 Internet访问基础777
24.3.1 WebRequest类778
24.3.2 WebResponse类780
24.3.3 HttpWebRequest类和HttpWebResponse类781
24.3.4 一个简单的示例781
24.4 处理网络错误784
24.4.1 Create()产生的异常784
24.4.2 GetResponse()产生的异常784
24.4.3 GetResponseStream()产生的异常785
24.4.4 使用异常处理785
24.5 Uri类786
24.6 访问附加的HTTP响应信息788
24.6.1 访问报头789
24.6.2 访问Cookie790
24.6.3 使用LastModified属性791
24.7 MiniCrawler:案例分析792
24.8 使用WebClient796
第Ⅲ部分 C#应用803
第25章 构建组件803
25.1 组件的概念803
25.2 C#组件的概念804
25.2.1 容器和站点804
25.2.2 C#组件与COM组件804
25.3 IComponent接口805
25.4 Component类805
25.5 一个简单的组件示例806
25.5.1 编译CipherLib807
25.5.2 使用CipherComp的客户端程序807
25.6 重写Dispose(bool)808
25.6.1 Dispose(bool)实例809
25.6.2 防止使用已删除的组件814
25.7 使用using语句815
25.8 容器816
25.9 组件是程序设计的未来819
第26章 创建基于窗体的Windows应用程序821
26.1 Windows程序设计简史821
26.2 编写基于窗体的Windows应用程序的两种方式822
26.3 Windows与用户交互操作的方法822
26.4 Windows窗体823
26.5 基于窗体的Windows框架程序823
26.6 添加按钮825
26.6.1 按钮概述826
26.6.2 给窗体添加按钮826
26.6.3 一个简单的按钮示例826
26.7 消息处理827
26.8 使用消息框830
26.9 添加菜单832
26.9.1 创建传统样式的主菜单833
26.9.2 使用MenuStrip创建新式菜单837
26.10 总述840
第27章 设计递归表达式的分析程序843
27.1 表达式843
27.2 分析表达式:发现问题844
27.3 分析表达式:解决问题845
27.4 解析表达式846
27.5 一个简单的表达式分析程序849
27.6 为分析程序添加变量855
27.7 递归分析程序中的语法检查863
27.8 尝试一些改进864
附录A XML注释865