《.NET Framework 2.0 程序设计》
目录
第1章 1.1 1.2
.NET FRAMEWORK2.0简介............................................................................................1 .NET FRAMEWORK概述........................................................................................................1 .NET FRAMEWORK的结构.....................................................................................................3
公共语言运行库............................................................................................................3
1.2.1 1.3
1.2.2 .NET Framework类库.......................................................................................................4
常见.NET FRAMEWORK应用程序.........................................................................................5 1.3.1 ASP.NET Web应用程序..................................................................................................5 1.3.2 Windows窗体应用程序....................................................................................................6 1.3.3 ADO.NET..........................................................................................................................7 1.3.4 1.4 1.5 1.6 第2章?2.1?2.2?
分布式应用程序............................................................................................................8 .NET FRAMEWORK的运行环境...........................................................................................10 小结......................................................................................................................................10 习题......................................................................................................................................10 公共语言运行库和类型..................................................................................................11?构建托管代码:通用类型系统..........................................................................................11?通用类型系统......................................................................................................................11?
值类型和引用类型......................................................................................................12?值类型和引用类型之间的相互转换:装箱和拆箱..................................................14?类型转型......................................................................................................................16?
2.2.1?2.2.2?2.2.3?2.3?2.4?
公共语言规范......................................................................................................................17?特殊系统类型......................................................................................................................17?
泛型..............................................................................................................................17?Nullable 类型..................................................................................................................20?
2.4.1?2.4.2?2.5?2.6?2.7?第3章?3.1?3.2?
小结......................................................................................................................................23?实验......................................................................................................................................23?习题......................................................................................................................................23?托管代码的编译和执行...........................................................................................25?编译和执行概述..................................................................................................................25?编译托管代码......................................................................................................................26?
元数据..........................................................................................................................27 属性..............................................................................................................................28 程序集的元数据:清单(Manifest)........................................................................29 程序集分类..................................................................................................................30 加载程序集..................................................................................................................31
3.2.1 Microsoft 中间语言 (MSIL).................................................................................26 3.2.2 3.2.3 3.3?3.3.1 3.3.2 3.4?3.4.1
组织托管代码:程序集(ASSEMBLY)................................................................................29?
执行托管代码......................................................................................................................31?
3.4.2 3.4.3 3.4.4 3.4.5 3.5?3.6?3.7?第4章?4.1?
编译 MSIL..................................................................................................................32 垃圾回收......................................................................................................................34 终结器..........................................................................................................................36 应用程序域(App Domain).....................................................................................36
小结......................................................................................................................................38?实验......................................................................................................................................38?习题......................................................................................................................................38?委托和事件.............................................................................................................39?委托......................................................................................................................................39?
通过使用 Delegate 类间接调用应用程序方法........................................................41 通过使用新的 C# 2.0技术增强委托行为................................................................47 使用事件的好处..........................................................................................................50 事件的工作方式..........................................................................................................50 通过使用 Event 语句创建事件.................................................................................51 自定义事件参数类......................................................................................................53 事件和委托的关系......................................................................................................55
4.1.1 4.1.2 4.2?4.2.1 4.2.2 4.2.3 4.2.5 4.2.6 4.3?4.4?4.5?
事件......................................................................................................................................50?
4.2.4 EventHandler 委托的实现方法。..............................................................................52
小结......................................................................................................................................56?实验......................................................................................................................................56?习题......................................................................................................................................56?
第5章 读取和写入文件.................................................................................................................59 5.1
管理文件系统.....................................................................................................................59
使用 Path 类来访问文件路径..................................................................................59 使用 File 和 FileInfo 类访问文件..........................................................................61 File 类........................................................................................................................61 FileInfo 类..................................................................................................................62 使用 Directory 和 DirectoryInfo 类访问目录........................................................62 Directory 类...............................................................................................................63 DirectoryInfo 类.........................................................................................................63 使用 DriveInfo 类访问驱动器.................................................................................64
5.1.1 5.1.2 (1) (2) 5.1.3 (1) (2) 5.1.4 5.2
5.1.5 FileSystemWatcher 类...................................................................................................65
使用字节流.........................................................................................................................67
使用 Stream 类管理字节流......................................................................................68 使用 FileStream 类来管理文件数据.......................................................................69 使用 MemoryStream 类来管理内存数据................................................................69 使用 BufferedStream 来提高流性能.......................................................................70 压缩和解压缩.............................................................................................................71
5.2.1 5.2.2 5.2.3 5.2.4 5.3 5.3.1
压缩和保护流信息.............................................................................................................70
(1) (2) 5.3.2 5.3.3 5.4 5.4.1 5.4.2 (1) (2) 5.4.3 5.4.4 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.2 (1) (2) (3) (4) (5) (6) (7) 5.7 5.8 5.9 第6章?6.1?
使用 DeflateStream 来压缩流信息..........................................................................71 使用 GZipStream类压缩流信息..............................................................................73 独立存储.....................................................................................................................76 使用独立存储类保护流信息.....................................................................................77 文本、流、字符串和二进制数据.............................................................................80 管理文本数据和字符串.............................................................................................81 TextReader 类............................................................................................................81 TextWriter 类.............................................................................................................81 管理字符串.................................................................................................................82 使用BinaryReader 和BinaryWriter管理二进制数据.............................................84 字符串处理.................................................................................................................86 使用StringBuilder类高效操作字符串.....................................................................86 正则表达式.................................................................................................................90 使用正则表达式类来分析文本模式.........................................................................92 RegEx 类....................................................................................................................92 Capture 类..................................................................................................................93 CaptureCollection 类.................................................................................................94 Group类.....................................................................................................................94 GroupCollction类.......................................................................................................94 Match 类....................................................................................................................94 MatchCollection 类....................................................................................................95
管理应用程序数据.............................................................................................................80
高效操作字符串.................................................................................................................86
使用正则表达式.................................................................................................................89
小结.....................................................................................................................................97 实验.....................................................................................................................................97 习题.....................................................................................................................................97 集合和泛型...................................................................................................................101?集合和集合接口...............................................................................................................101?
集合...........................................................................................................................101?集合接口...................................................................................................................101?通过使用迭代器循环访问类的成员.......................................................................103?根据键/值对和比较器访问引用类型......................................................................106?
6.1.1?6.1.2?6.2?6.2.1?6.2.2?
使用主要集合类型...........................................................................................................102?
6.3?使用泛型集合...................................................................................................................110?
通过使用泛型 List 类型创建类型安全的集合.....................................................110?使用泛型Stack集合和Queue集合........................................................................111?StringCollection 类......................................................................................................113?StringDictionary 类......................................................................................................114?StringEnumerator 类....................................................................................................115?CollectionUtil 类..........................................................................................................115?ListDictionary类...........................................................................................................116?HybridDictionary类.....................................................................................................117?OrderedDictionary类....................................................................................................118?NameValueCollection 类.............................................................................................118?通过使用专用位结构在内存中高效地存储数据...................................................119?通过使用集合基类创建自定义集合.......................................................................121?CollectionBase类.........................................................................................................122?ReadOnlyCollectionBase类.........................................................................................124?DictionaryBase类.........................................................................................................125?
6.3.1?6.3.2?6.4?6.4.1?6.4.2?6.4.3?6.4.4?6.4.5?6.4.6?6.4.7?6.4.8?6.4.9?6.5?6.5.1?6.5.2?6.5.3?6.5.4?6.6?6.7?6.8?第7章?7.1?
使用专用集合...................................................................................................................112?
使用集合基类...................................................................................................................121?
小结...................................................................................................................................128?实验...................................................................................................................................128?习题...................................................................................................................................128?数据的序列化...............................................................................................................131?生成序列化的二进制格式和 SOAP 格式......................................................................131?BinaryFormatter类的成员...........................................................................................133?SoapFormatter类的成员..............................................................................................134?使用XmlSerializer 类将对象序列化为 XML 格式.............................................135?使用 XML 序列化属性来控制生成的 XML.......................................................136?使用序列化类型收集序列化信息...........................................................................144?使用序列化接口创建自定义类...............................................................................147?使用格式化程序类将数据转换为序列化格式.......................................................159?使用事件处理程序属性处理序列化事件...............................................................171?使用ObjectManager 类管理反序列化的对象.......................................................184?
7.1.1?7.1.2?7.2?7.2.1?7.2.2?7.3?7.3.1?7.3.2?7.3.3?7.3.4?7.3.5?7.4?7.5?7.6?第8章?8.1?
生成序列化的 XML 格式...............................................................................................135?
创建自定义序列化类.......................................................................................................144?
小结...................................................................................................................................191?实验...................................................................................................................................191?习题...................................................................................................................................191?GDI+.............................................................................................................................193?使用图形、画笔、钢笔、颜色和字体...........................................................................193?
图形设备接口(GDI+).........................................................................................194?通过使用 Graphics 类创建绘制表面.....................................................................195?通过使用Pen 类绘制直线......................................................................................198?通过使用Brush类为图形对象填充颜色...............................................................200?
8.1.1?8.1.2?8.1.3?8.1.4?
8.1.5?8.1.6?8.2?8.2.1?8.2.2?8.3?8.3.1?8.3.2?8.4?8.5?8.6?第9章?9.1?
通过使用Color类型为图形对象应用颜色............................................................203?通过使用 Font 类在绘图表层写入文本。............................................................207?使用 Rectangle 类型绘制图形形状.......................................................................211?使用 Point 和 Size 类型指定对象大小................................................................214?通过使用 Image 和 Bitmap 类将图像添加到绘制区域.....................................214?使用 Icon 类将图标插入绘制表面........................................................................217?
操作图形对象的形状和大小...........................................................................................211?
使用图像、位图和图标...................................................................................................214?
小结...................................................................................................................................218?实验...................................................................................................................................219?习题...................................................................................................................................219?在 MICROSOFT? .NET FRAMEWORK 2.0 中实现加密...................................221?加密数据...........................................................................................................................221?
数据加密和数据解密...............................................................................................221?使用对称算法类执行对称加密...............................................................................222?使用非对称类执行非对称加密...............................................................................231?使用 SslStream 类保护 TCP/IP 通信的安全.......................................................235?哈希算法...................................................................................................................249?通过使用加密类来管理配置信息...........................................................................261?使用DPAPI(数据保护API)类以保护文件和内存中的数据...........................265?使用CspParameters 类以自定义CSP 对象的行为..............................................267?使用CryptoAPITransform 类来修改加密信息......................................................269?为加密函数生成随机数...........................................................................................271?
9.1.1?9.1.2?9.1.3?9.1.4?9.2?9.3?9.2.1?9.3.1?9.3.2?9.3.3?9.3.4?9.3.5?9.4?9.5?9.6?第10章?10.1?
计算数据的哈希值...........................................................................................................248?加密行为的扩展...............................................................................................................261?
小结...................................................................................................................................272?实验...................................................................................................................................272?习题...................................................................................................................................272?COM 组件与.NET FRAMEWORK程序集之间的交互操作................................274?使用INTEROP服务来访问COM组件.............................................................................274?
通过导入类型库来创建Interop程序集.................................................................274?在托管代码中使用COM的类型与COM组件进行交互操作.............................281?编译和部署Interop应用程序的方法.....................................................................281?与COM 组件进行交互操作的.NET Framework类型..........................................281?应用属性以控制COM互操作性的类型转换........................................................284?如何打包和部署程序集以实现COM互操作性....................................................289?创建保存 Win32 API函数的.NET Framework类.................................................292?在托管代码中创建原型...........................................................................................293?在托管代码中调用COM DLL函数.......................................................................295?将 Exception 类映射到 HRESULT.......................................................................297?平台调用封送数据的方法.......................................................................................299?
10.1.1?10.1.2?10.1.3?10.2?10.2.1?10.2.2?10.2.3?10.3?10.3.1?10.3.2?10.3.3?10.3.4?10.3.5?
使用INTEROP服务来向COM组件公开程序集.............................................................281?
通过平台调用服务访问COM组件................................................................................292?