第1章C#与.NET编程 1
1.1安装C# Express 2
1.2 C# 3.0与NET 3.5 3
1.3 .NET平台 3
1.4 .NET Framework 4
1.5 C#语言 4
1.6第一个程序:Hello World 5
1.7编译器 8
1.8研究第一个程序 9
1.9集成开发环境 13
1.10小结 14
1.11测验 15
1.12练习 16
第2章Visual Studio 2008和C# Express 2008 17
2.1写在前面的话 18
2.2起始页 19
2.3项目和解决方案 19
2.3.1项目类型 20
2.3.2模板 21
2.4集成开发环境的内部构造 22
2.5创建和运行应用程序 24
2.6菜单 25
2.6.1 File菜单 25
2.6.2 Edit菜单 25
2.6.3 View菜单 32
2.6.4 Refactor菜单 35
2.6.5 Project菜单 35
2.6.6 Build菜单 35
2.6.7 Debug菜单 35
2.6.8 Data菜单 36
2.6.9 Format菜单 36
2.6.10 Tools菜单 36
2.6.11 Window菜单 37
2.6.12帮助菜单 37
2.7小结 37
2.8测验 38
2.9练习 39
第3章C#语言基础 40
3.1语句 40
3.2变量类型 40
3.2.1数值类型 42
3.2.2非数值类型:char类型和bool类型 43
3.2.3类型与编译错误 43
3.3 WriteLine()和Output 44
3.4变量和赋值 45
3.4.1明确赋值 47
3.4.2隐式类型变量 48
3.5类型转换 49
3.6常量 50
3.6.1字面常量 51
3.6.2符号常量 51
3.6.3枚举 52
3.7字符串 55
3.8空白字符 55
3.9小结 56
3.10测验 57
3.11练习 58
第4章 运算符 60
4.1表达式 60
4.2赋值运算符(=) 60
4.3算数运算符 61
4.3.1简单算数运算符(+、-、*、/) 61
4.3.2取模运算符(%) 62
4.4递增和递减运算符 63
4.4.1计算并赋值运算符 64
4.4.2递增1和递减1运算符 64
4.4.3前置和后置运算符 64
4.5关系运算符 67
4.6逻辑运算符和条件语句 67
4.7条件运算符 69
4.8运算符优先级 70
4.9小结 72
4.10测验 72
4.11练习 73
第5章 分支语句 75
5.1无条件分支语句 75
5.2条件分支语句 77
5.2.1 if语句 77
5.2.2单独if语句块 79
5.2.3缩短条件判断 82
5.2.4 if…else语句 83
5.2.5嵌套if语句 84
5.2.6 switch语句 87
5.2.7 Case语句的贯穿和跳转 89
5.2.8 switch判断字符串 91
5.3 ReadLine()和输入 92
5.4迭代(循环)语句 93
5.4.1使用goto创建循环 93
5.4.2 while循环 95
5.4.3 do…while循环 96
5.4.4 for循环 97
5.4.5用取模运算符控制for循环 98
5.4.6 跳出for循环 99
5.4.7 continue语句 100
5.4.8 for循环的可选元素 102
5.5小结 105
5.6测验 106
5.7练习 107
第6章 面向对象编程 108
6.1构建模型 109
6.2类和对象 110
6.3类的定义 110
6.4类的关系 111
6.5面向对象编程的三大支柱 112
6.5.1封装 112
6.5.2具体化 113
6.5.3多态性 113
6.6面向对象的分析和设计 114
6.7小结 114
6.8测验 115
6.9练习 116
第7章 类和对象 117
7.1定义类 118
7.1.1实例化对象 119
7.1.2创建Box类 120
7.1.3访问修饰符 122
7.2方法参数 122
7.3返回类型 124
7.4构造器 125
7.5初始化器 127
7.6对象初始化器 128
7.7匿名类型 129
7.8 this关键字 130
7.9静态成员和实例成员 131
7.9.1调用静态方法 132
7.9.2使用静态域 134
7.10析构对象 136
7.11内存分配:栈和堆 138
7.12小结 143
7.13测验 144
7.14练习 145
第8章 方法 146
8.1重载方法 146
8.2通过属性封装数据 149
8.2.1 get访问器 152
8.2.2 set访问器 152
8.2.3自动属性 153
8.3返回多个值 154
8.3.1通过引用传递值类型 155
8.3.2输出参数和明确赋值 157
8.4小结 157
8.5测验 158
8.6练习 159
第9章 基本调试 160
9.1设置断点 161
9.1.1使用调试菜单设置断点 162
9.1.2设置筛选器和命中次数 163
9.2查看值:Autos和Locals窗口 164
9.3设置监视 166
9.4调用堆栈 168
9.5停止调试 169
9.6小结 169
9.7测验 169
9.8练习 170
第10章 数组 174
10.1使用数组 174
10.1.1声明数组 175
10.1.2理解默认值 175
10.1.3访问数组元素 176
10.1.4数组和循环 176
10.2 foreach语句 179
10.3初始化数组元素 180
10.4 params关键字 180
10.5多维数组 181
10.5.1矩形数组 182
10.5.2锯齿数组 186
10.6数组方法 189
10.7数组排序 189
10.8小结 192
10.9测验 193
10.10练习 193
第11章 继承和多态 194
11.1具体化与一般化 194
11.2继承 196
11.2.1实现继承 197
11.2.2调用基类构造器 199
11.2.3隐藏基类方法 200
11.2.4访问控制 200
11.3多态 201
11.3.1创建多态类型 201
11.3.2重写虚方法 204
11.3.3使用多态对象 204
11.3.4 new和override版本 206
11.4抽象类 207
11.5密封类 210
11.6所有类的根类:Object 210
11.7小结 212
11.8测验 213
11.9练习 214
第12章 运算符重载 215
12.1设计Fraction类 215
12.2使用operator关键字 216
12.3创建有用的运算符 219
12.4 Equals运算符 220
12.5转换运算符 225
12.6小结 229
12.7测验 229
12.8练习 230
第13章 接口 231
13.1什么是接口 231
13.2实现接口 232
13.2.1定义接口 235
13.2.2在客户端实现接口 236
13.3实现多个接口 237
13.4转换为一个接口 240
13.5 is和as运算符 240
13.6扩展接口 247
13.7合并接口 249
13.8重载接口方法 250
13.9显示接口实现 255
13.10小结 258
13.11测验 259
13.12练习 260
第14章 泛型和集合 261
14.1泛型 261
14.2集合接口 262
14.3创建自己的集合 262
14.3.1创建索引器 262
14.3.2索引和赋值 266
14.3.3以其他类型作为索引 267
14.3.4泛型集合接口 271
14.3.5 IEnumerable<T>接口 272
14.4 Framework泛型集合 276
14.4.1泛型列表:List<T> 276
14.4.2泛型队列 288
14.4.3泛型堆栈 290
14.4.4字典 293
14.5小结 296
14.6测验 297
14.7练习 297
第15章 字符串 299
15.1创建字符串 299
15.1.1字符串文本 300
15.1.2转义字符 300
15.1.3逐字字符串 300
15.1.4 ToString()方法 301
15.2操作字符串 301
15.2.1比较字符串 302
15.2.2连接字符串 303
15.2.3复制字符串 304
15.2.4判断字符串是否相等 307
15.2.5其他常用的字符串方法 308
15.2.6搜索子字符串 311
15.2.7分割字符串 313
15.2.8 StringBuilder类 315
15.3正则表达式 317
15.4 Regex类 318
15.5小结 320
15.6测验 321
15.7练习 322
第16章 抛出和捕获异常 324
16.1 Bug Error和Exception 324
16.2抛出异常 325
16.3搜索异常处理器 325
16.4 throw语句 326
16.5 try和catch语句 328
16.6怎样调用堆栈 330
16.7创建专门的catch语句 332
16.8 finally语句 334
16.9 Exception类的方法和属性 337
16.10自定义异常 340
16.11小结 343
16.12测验 344
16.13练习 344
第17章 委托和事件 345
17.1委托 345
17.2事件 350
17.2.1发布和订阅 350
17.2.2事件和委托 351
17.2.3使用事件解决委托问题 358
17.2.4 event关键字 359
17.3使用匿名方法 363
17.4 Lambda表达式 363
17.5小结 365
17.6测验 365
17.7练习 366
第18章 创建Windows应用程序 367
18.1创建简单的Windows窗体应用程序 367
18.2创建真正的应用程序 373
18.2.1创建基本用户界面 375
18.2.2组合使用TreeView控件 377
18.2.3处理TreeView事件 383
18.2.4处理Button事件 387
18.3源代码 392
18.4小结 400
18.5测验 401
18.6练习 401
第19章Windows Presentation Foundation 403
19.1第一个WPF应用程序 404
19.2 WPF与Windows Forms的区别 408
19.3使用资源 410
19.4动画 412
19.4.1 Triggers和Storyboards 413
19.4.2将动画作为资源 416
19.5 C#与WPF 419
19.5.1 Grids和Stack Panels 420
19.5.2添加数据 425
19.5.3使用XAML中的数据 427
19.5.4定义ListBox 427
19.5.5事件处理 428
19.5.6完整的XAML文件 429
19.6小结 433
19.7测验 434
19.8练习 435
第20章ADO.NET和关系型数据库 436
20.1关系数据库和SQL 436
20.1.1安装Northwind数据库 437
20.1.2表、记录和列 440
20.1.3规范化 440
20.1.4声明引用完整性 441
20.1.5 SQL 441
20.2 ADO.NET对象模型 443
20.2.1 DataTables和DataColumns 443
20.2.2 DataRelations 443
20.2.3 Rows 444
20.2.4 DataAdapter 444
20.2.5 DbCommand和DbConnection 444
20.2.6 DataReader 444
20.3 ADO.NET使用入门 444
20.4小结 447
20.5测验 448
20.6练习 449
第21章LINQ 450
21.1查询内存中的数据 450
21.2匿名类型和隐式类型变量 454
21.3 Lambda表达式 456
21.4排序和连接 457
21.5使用LINQ与SQL 462
21.6使用Object Relational Designer 466
21.7小结 470
21.8测验 471
21.9练习 472
附录A习题和练习答案 473