前言 1
第1章 C#与.NET框架介绍 7
面向对象 7
类型安全 8
内存管理 8
平台支持 9
C#与通用语言运行时的关系 9
通用语言运行时与.NET框架 9
C#3.0中有哪些新内容 10
第2章 C#语言基础 14
第一个C#程序 14
语法 17
基础类型 19
数值类型 27
布尔类型及其运算符 34
字符串和字符 36
数组 38
变量和参数 42
表达式与操作符 49
语句 54
命名空间 61
第3章 在C#中创建类型 69
类 69
继承 82
object类型 90
结构 94
访问修饰符 95
接口 96
枚举 102
嵌套类型 105
泛型 106
第4章 高级C# 115
委托 115
事件 122
Lambda表达式(C# 3.0) 128
匿名方法 131
try语句和异常 132
枚举与迭代 140
可空类型 145
运算符重载 150
扩展方法(C# 3.0) 153
匿名类型(C# 3.0) 156
属性 157
不安全代码和指针 159
预处理器指令 162
XML文档 164
第5章 .NET框架概述 170
CLR与框架核心 171
.NET Framework 3.5的新增功能 172
应用技术 176
第6章 框架基础 182
字符串和文本处理 182
日期和时间 195
日期与时区 202
格式化和分析 208
标准格式字符串和分析标识 214
其他转换机制 221
数字操作 225
枚举类型 227
Guid结构 230
相等比较 231
顺序比较 240
实用类 243
第7章 集合 246
Enumeration 247
ICollection和IList接口 253
Array类 255
列表、队列、栈和集合 264
字典 273
自定义集合和代理 279
可插入的相等比较和顺序比较 285
第8章 语言集成查询 291
起步 291
Lambda查询 293
广义查询 299
延迟执行 303
子查询 309
组合策略 312
投影策略 316
解释查询 318
LINQ to SQL 324
构建查询表达式 333
第9章 LINQ运算符 339
概述 340
筛选 343
投影 347
联接 358
排序 366
分组 369
Set运算符 372
转换方法 373
元素运算符 375
聚合方法 377
限定符 380
生成方法 381
第10章 LINQ to XML 383
体系概述 383
X-DOM概述 384
实例化X-DOM 388
导航和查询 390
更新X-DOM 396
操作Value 399
文档和声明 401
名称和命名空间 405
批注(Annotations) 411
投影到X-DOM 411
第11章 其他XML技术 418
XmlReader 419
XmlWriter 428
使用XmlReader/XmlWriter的模式 430
XmlDocument 434
XPath 437
XSD和架构验证 442
XSLT 445
第12章 处置与回收 446
IDisposable、Dispose和Close 446
垃圾收集与终止器 450
通过终止器调用Dispose 452
垃圾收集器如何工作 453
垃圾收集操作的替代操作 455
第13章 流与输入/输出 456
流结构 456
使用流 458
流适配器 470
文件和文件夹操作 477
压缩 486
独立存储 488
第14章 网络 494
网络结构 494
地址和端口 496
URI 497
请求/响应结构 499
HTTP-特殊支持 508
写一个HTTP服务器 512
使用FTP 515
使用DNS 517
用SmtpClient发送邮件 518
使用TCP 519
用TCP接收POP3邮件 522
第15章 序列化 524
序列化概念 524
数据协定序列化 528
数据协定和结合 538
扩展数据协定 540
二进制序列化器 544
二进制序列化属性 546
用ISerializable实现二进制序列化 549
XML序列化 552
第16章 程序集 562
程序集中有什么 562
签署一个程序集 567
程序集名字 570
Global Assembly Cache 572
资源和卫星程序集 574
解析和加载程序集 582
在基文件夹外部解析程序集 586
压缩单个文件的可执行文件 587
与未被引用的程序集工作 589
第17章 反射和元数据 591
反射与激活类型 591
反射与调用成员 597
反射程序集 608
使用属性 609
动态生成代码 615
发出程序集和类型 622
发出类型成员 625
发出泛型方法和类型 631
笨拙的发出目标 633
分析IL 637
第18章 安全性 643
权限集 644
代码访问安全性 647
在沙箱中运行 650
沙箱另一个程序集 652
操作系统安全性 655
身份和角色安全性 657
加密综述 659
Windows数据保护 659
哈希法 660
对称加密 662
公钥加密和签名 666
第19章 线程处理 670
线程处理的使用和误用 670
多线程处理入门 671
异步委托 681
同步 683
锁定 685
线程安全 691
非阻塞同步 695
使用事件等待句柄发信号 698
使用Wait和Pulse发送信号 704
中断和中止 713
局部存储 716
BackgroundWorker 717
ReaderWriterLockSlim 721
计时器 725
第20章 匿名方法 729
为什么匿名方法存在 729
匿名方法签名 730
使用匿名方法 731
编写匿名方法 734
假的匿名方法 737
匿名方法的可选项 738
匿名事件 738
第21章 应用程序域 740
应用程序域体系结构 740
创建和消灭应用程序域 741
使用多个应用程序域 743
使用DoCallBack 745
域和线程 745
在域间共享数据 747
第22章 与本地DLL集成 753
深入DLL调用 753
封送处理公共类型 754
封送处理类和结构体 755
In和Out封送处理 756
从未托管代码回调 757
模拟一个C联合体 758
共享内存 758
映射结构体到未托管内存 761
Interop属性引用 764
第23章 诊断 770
有条件的编译 770
Debug和Trace类 773
调试器集成 776
进程和进程线程 777
StackTrace和StackFrame 778
Windows事件日志 780
性能计数器 782
Stopwatch类 787
第24章 正则表达式 788
正则表达式基础 788
限定符 793
零宽度断言 794
分组 797
正则表达式大全 800
正则表达式语言参考 803
附录A C#关键字 807
附录B 命名空间到程序集的引用 815