第1章 .NET和IDE集成开发环境 1
1.1.NET平台 1
1.2.NET框架 1
1.3.NET程序集 2
1.4安装VS 2008集成开发环境 3
1.5安装VS 2008 MSDN 5
1.6使用VS 2008集成开发环境 6
1.6.1使用VS 2008创建一个控制台程序 6
1.6.2使用VS 2008创建一个Windows窗体应用程序 7
1.6.3使用V S 2008进行调试 8
1.7本章总结 10
第2章 C#语言基础 11
2.1基础数据类型 11
2.1.1常量 12
2.1.2变量 12
2.2运算符 13
2.2.1运算符类型 13
2.2.2运算符的优先级 14
2.3控制语句 15
2.3.1条件控制语句 15
2.3.2循环控制语句 16
2.3.3多分支语句 18
2.4一个简单的C#程序示例 19
2.5格式化字符串示例 20
2.6 C#命名规范 21
2.7本章总结 22
第3章 枚举与数组 23
3.1枚举 23
3.1.1枚举定义的语法 23
3.1.2使用枚举类型 24
3.1.3得到枚举类型值 25
3.1.4枚举类型和字符串类型转换 25
3.2数组 26
3.2.1数组的声明和初始化 27
3.2.2使用数组中的某一个元素示例 27
3.3本章总结 28
第4章 类与结构 29
4.1访问修饰符 29
4.2类和对象 29
4.2.1类:物体与物体之间本质上的描述 30
4.2.2构造函数:创建物体的方式 30
4.2.3对象:如同客观世界中存在的物体 32
4.2.4实例化:即将类的概念加工成对象的过程 32
4.2.5类成员:定义在类里面的内容 32
4.3类的非静态成员 33
4.3.1成员变量:在类里面定义的变量 33
4.3.2属性:描述事物的特性 33
4.3.3方法:描述事物的行为 34
4.3.4 C#中方法的定义 35
4.3.5索引器:在集合或数组中取出某一个元素 38
4.3.6使用类的非静态成员总结 40
4.4类的静态成员 40
4.4.1使用类的静态成员示例 40
4.4.2使用类的静态成员总结 42
4.5结构 42
4.5.1定义和使用结构类型实例 43
4.5.2结构和类的对比 44
4.6值类型和引用类型的区别 44
4.6.1值类型实例 44
4.6.2引用类型实例 45
4.6.3结构和类的区别 46
4.7抽象类、接口和静态类 50
4.7.1抽象类 50
4.7.2接口 50
4.7.3静态类 51
4.8本章总结 52
第5章 面向对象的高级编程 53
5.1封装 53
5.1.1封装的定义 53
5.1.2使用private访问修饰符示例 53
5.1.3重载 55
5.1.4输出信息到控制台 57
5.1.5构造函数重载 58
5.1.6使用重载构造函数示例1 59
5.1.7使用重载构造函数示例2 60
5.1.8重载与封装总结 61
5.2继承 61
5.2.1继承的用法 62
5.2.2在子类定义中使用父类属性 63
5.2.3使用protected关键字定义父类成员 64
5.2.4密封类 66
5.2.5继承总结 66
5.3多态 67
5.3.1普通类多态 67
5.3.2抽象类多态 73
5.3.3普通类多态复杂示例 75
5.3.4抽象类多态复杂示例 77
5.3.5类多态总结 79
5.3.6接口多态 79
5.3.7多态总结 82
5.4隐藏父类成员 83
5.4.1隐藏父类方法示例 83
5.4.2在定义隐藏父类成员时消除警告信息示例 84
5.4.3将子类对象进行类型转换 86
5.4.4隐藏父类属性示例 87
5.5本章总结 89
第6章 委托和事件 90
6.1委托 90
6.1.1委托的语法和定义 90
6.1.2定义和使用委托 90
6.1.3委托链 92
6.1.4定义和使用委托链 92
6.1.5匿名方法 94
6.1.6定义和使用匿名方法 94
6.2事件 95
6.2.1定义和使用事件示例1 96
6.2.2定义和使用事件示例2 97
6.2.3委托推断示例 99
6.3委托和事件的区别 101
6.4本章总结 101
第7章 集合 102
7.1 ArrayList集合 102
7.1.1 ArrayList类型的常用属性 102
7.1.2 ArrayList基本使用示例 103
7.2 ArrayList高级使用 105
7.2.1实现集合中元素位置正序和倒序输出示例1 105
7.2.2实现集合中元素位置正序和倒序输出示例2 105
7.2.3实现集合中元素内容从小到大排序输出示例 106
7.2.4使用CopyTo方法将集合中的元素复制到数组变量 107
7.2.5使用ToArray方法将集合中的元素复制到数组变量 108
7.3 ArrayList使用复杂类型 109
7.3.1定义学生和老师的类型示例 109
7.3.2输出ArrayList集合内的老师和学生信息 110
7.3.3重新定义学生和老师类型,重写ToString方法的示例 111
7.3.4使用类型转换的方式输出老师和学生的姓名 112
7.3.5使用Contains方法查询集合中王云鹏老师 113
7.3.6重新定义老师和学生类型重写Equals方法 114
7.3.7使用Binary Search方法查询集合中王云鹏老师 115
7.3.8使用IndexOf方法查询集合中王云鹏老师 116
7.3.9实现复杂类型在集合里面排序 117
7.4 Hashtable集合 118
7.4.1 Hashtable的属性与方法 118
7.4.2 Hashtable的基本使用 118
7.5 Hashtable的高级使用 120
7.5.1将Hashtable集合全部键转换为数组变量 120
7.5.2将Hashtable集合全部值转换为数组变量 121
7.5.3将Hashtable集合转换为数组 121
7.6 Hashtable使用复杂类型 122
7.7 Queue集合 123
7.7.1 Queue的基本使用 124
7.7.2 Queue使用复杂类型 125
7.8 Stack集合 126
7.8.1 Stack的基本使用 126
7.8.2 Stack使用复杂类型 127
7.9使用集合编写购物车 128
7.10本章总结 133
第8章 泛型集合 134
8.1泛型集合概述 134
8.2 List<T>泛型集合 135
8.2.1 List<T>的基本使用 136
8.2.2 List<T>使用复杂类型 137
8.3 Dictionary<TKey,TValue>泛型集合 139
8.3.1 Dictionary<TKey,TValue>的基本使用 139
8.3.2 Dictionary<TKey,TValue>使用复杂类型 141
8.4 Queue<T>集合 142
8.4.1 Queue<T>的基本使用 142
8.4.2 Queue<T>使用复杂类型 143
8.5 Stack<T>集合 144
8.5.1 Stack<T>的基本使用 144
8.5.2 Stack<T>使用复杂类型 145
8.6使用泛型集合编写购物车示例 145
8.7本章总结 148
第9章Winform高级控件 149
9.1窗体 149
9.1.1窗体的属性 149
9.1.2窗体的方法 150
9.1.3窗体的事件 150
9.1.4 MDI示例 151
9.2显示控件界面 153
9.2.1菜单栏设计界面 153
9.2.2工具栏设计界面 153
9.2.3状态栏设计界面 154
9.2.4 MDI完整示例 154
9.3图片框与图片列表控件 159
9.3.1图片框控件 159
9.3.2图片列表控件 159
9.4计时器 159
9.4.1常见的属性、方法和事件 160
9.4.2图片框、图片列表框、计时器示例 160
9.5组合框和列表框 162
9.5.1组合框控件 162
9.5.2组合框示例 162
9.5.3列表框控件 164
9.5.4列表框示例 165
9.6列表视图 167
9.6.1给ListView添加列 167
9.6.2给ListView控件添加项 168
9.6.3列表视图控件示例 168
9.7树形视图 171
9.7.1树形视图控件的属性 171
9.7.2树形视图控件示例 172
9.8本章总结 177
第10章ADO.NET五大常用对象 178
10.1 ADO.NET基础 178
10.2 ADO.NET的五大对象 179
10.3 Connection对象 180
10.3.1常见的属性和方法 180
10.3.2最常用的两种格式 180
10.3.3测试数据库连接示例 181
10.4 Command对象和DataReader对象 183
10.4.1 Command对象的常用属性和方法 183
10.4.2使用Command对象的步骤 184
10.4.3 ExecuteScalar()方法 184
10.4.4返回表中记录数示例 185
10.4.5 ExecuteReader()方法 186
10.4.6查询表中某一条记录示例 186
10.4.7查询表中全部记录示例 188
10.4.8 ExecuteNonQuery()方法 190
10.4.9对表进行插入数据的示例 190
10.5 DataSet对象和DataAdapter对象 191
10.5.1 DataSet对象 191
10.5.2 DataSet的工作原理 192
10.5.3 DataAdapter对象 194
10.5.4 DataSet和DataAdapter使用示例 194
10.5.5数据绑定 198
10.6三层项目结构应用 199
10.6.1三层项目结构产生的背景 199
10.6.2三层项目结构概述 199
10.7三层项目结构的搭建 200
10.7.1搭建表示层 200
10.7.2搭建业务逻辑层 200
10.7.3搭建数据访问层 201
10.7.4添加各层之间的依赖关系 201
10.8实体类 202
10.8.1实体类的作用 202
10.8.2在三层结构里搭建实体类 203
10.9三层结构和实体类编码 204
10.9.1数据访问层代码示例 204
10.9.2实体类代码示例 208
10.9.3业务逻辑层代码示例 209
10.9.4表示层代码示例 210
10.10本章总结 215
第11章 .NET的IO 216
11.1文件和流的基本知识 216
11.1.1文件与流 216
11.1.2流的类型 216
11.1.3流的读和写 216
11.1.4数据缓冲区 217
11.1.5文件的读写和安全性 217
11.2直接进行目录和文件的操作 217
11.2.1 DirectoryInfo类型 217
11.2.2 File类型 219
11.3使用文件流进行存取数据的操作 220
11.3.1 FileStream类型 220
11.3.2 Binary Writer与Binary Reader类型 224
11.3.3 StreamWriter和StreamReader类型 226
11.4从字符串中读取和写入字符 231
11.4.1 StringReader类型 231
11.4.2 StringWriter类型 232
11.5使用内存流读取数据 233
11.5.1使用Memory Stream将图片内容显示给用户 233
11.5.2通过文件流读取图片并显示给用户 235
11.6本章总结 236
第12章 .NET与XML 237
12.1 XML的概述 237
12.1.1 XML的特点 237
12.1.2 XML和Class的对比 238
12.2 DOM操作XML 239
12.2.1 DOM概述 240
12.2.2使用XmlDocument类型操作XML 240
12.2.3 DOM XPATH查询XML 243
12.2.4 DOM写入XML示例 247
12.3 XmlTextReader和XmlTextWriter读写XML 248
12.3.1 XmlTextReader类型 248
12.3.2 XmlTextWriter类型 250
12.4本章总结 251
第13章 反射和序列化 252
13.1反射 252
13.1.1反射示例 252
13.1.2反射创建对象、调用对象的属性与方法编程示例 254
13.1.3 ORM应用示例 261
13.1.4 RMI应用示例 262
13.2序列化和反序列化 264
13.2.1二进制方式序列化和反序列化示例 264
13.2.2通过二进制序列化和反序列化显示文件信息 266
13.2.3序列化、反序列化对象信息到文件流 268
13.2.4使用XML序列化和反序列化信息到文件流与内存流 271
13.2.5序列化、反序列化对象的信息到文件流 273
13.2.6自定义保存XML文件的数据格式 275
13.3直接使用字节数组方式保存和读取文件信息 278
13.3.1保存字节数组示例 278
13.3.2读取字节数组 282
13.4间接使用字节数组保存和读取文件信息 282
13.4.1保存字节数组示例 282
13.4.2读取字节数组示例 284
13.5本章总结 285
第14章GUI和GDI 286
14.1 GUI 286
14.1.1通过焦点事件清除文本框控件里面的提示信息 286
14.1.2通过键盘事件验证用户输入登录名 287
14.1.3使用键盘事件实现用户按【Enter】键时切换控件焦点 288
14.1.4使用【Enter】键或者【Ctrl+Enter】组合键发送信息 289
14.1.5鼠标事件示例 292
14.1.6拖放事件 293
14.2 GUI使用优化 295
14.2.1容器类控件优化显示 295
14.2.2列表类控件优化显示 296
14.2.3所有控件类型优化显示 296
14.3 GDI 297
14.4 GDI示例 297
14.5 GDI使用优化 300
14.5.1加载图片列表优化显示示例 300
14.5.2使用GDI优化的知识显示表情 301
14.5.3添加鼠标预览时的效果 303
14.6截屏操作时的优化处理示例 305
14.6.1创建示例文件结构 305
14.6.2示例运行效果 306
14.6.3代码的编写 306
14.7本章总结 312
第15章 进程、线程、同步和异步 313
15.1进程与线程概述 313
15.1.1进程 313
15.1.2线程 314
15.2进程的使用 315
15.2.1 Application、 Process和Mutex示例 316
15.2.2 Application.Run方法概述 318
15.3线程的使用 318
15.3.1 Thread类型 319
15.3.2多个线程同时执行同一个方法 320
15.3.3阻塞线程 322
15.3.4线程锁 323
15.3.5使用锁(Lock)解决多线程访问共享资源冲突问题 325
15.3.6使用监视器(Monitor)解决多线程访问共享资源冲突问题 326
15.3.7线程休眠 328
15.3.8线程挂起和恢复 329
15.3.9使用线程中断的方式停止正在运行的线程 331
15.3.10线程的调度 332
15.3.11后台线程 333
15.4同步与异步 335
15.4.1委托同步的使用 335
15.4.2委托异步的使用 338
15.4.3线程和控件异步来检查网络状态 341
15.5后台工作者类型 343
15.5.1 BackgroundWorker类型 343
15.6本章总结 345
第16章 网络高层通信协议的应用 346
16.1网络编程概述 346
16.2 WebClient类 347
16.2.1 WebClient自制浏览器示例 347
16.2.2 WebClient自制上传下载程序示例 349
16.3 WebRequest类和WebResponse类 353
16.3.1 HttpWebRequest和HttpWebResponse自制浏览器示例 353
16.3.2 FtpWebRequest和FtpWebResponse自制上传下载程序示例 355
16.4 SmtpClient自制发送邮件程序 361
16.5本章总结 365
第17章 网络底层通信协议的应用 366
17.1建立TCP类型聊天程序 366
17.1.1使用TcpClient与TcpListener对象建立TCP网络聊天程序 366
17.1.2服务器端编程实现 367
17.1.3客户端编程实现 371
17.2建立UDP网络聊天程序 376
17.2.1 UDP网络聊天程序创建 376
17.2.2服务器端编程实现 376
17.2.3客户端编程实现 380
17.3采用Socket方式建立网络聊天程序 384
17.3.1网络聊天程序创建 384
17.3.2服务器端编程实现 385
17.3.3客户端编程实现 388
17.4本章总结 392
第18章 C# 3.0新特性 393
18.1隐式类型化局部变量 393
18.2匿名类型 394
18.3隐式类型化数组 396
18.4对象构造者 397
18.5集合构造者 398
18.6 Lambda表达式 401
18.7扩展方法 402
18.8 LINQ查询表达式 404
18.9本章总结 406