目录 1
第1章Microsoft.NET平台 1
1.1网络计算时代 1
1.2 Microsoft.NET平台 2
1.3.NET Framework 4
1.3.1 公共语言运行时 5
1.3.2基础类库 9
1.3.3 ADO.NET和XML 10
1.3.4基于ASP.NET编程框架 11
上的WebForms和Web 11
Services 11
1.3.5 WinForms用户界面 13
1.3.6.NET Framework的优势 13
1.4新一代编程语言C# 14
1.4.1 C#的新特性 14
1.4.2 C#与C++ 18
1.4.4 C#与Java 19
1.4.3 C#与VB.NET 19
第2章C#编程和编译环境 23
2.1 Visual Studio.NET集成开发环境 23
2.1.1 .NET集成开发环境 24
(IDE)简介 24
2.1.2创建项目 27
2.1.3编写代码环境 30
2.2一个简单的C#程序 33
2.3编辑、编译和运行一个C#程序 39
第3章数据类型和变量 42
3.1变量和常量 43
3.1.1变量 43
3.1.2 常量 50
3.2数值类型 50
3.2.1整数类型 53
3.2.2字符类型 54
3.2.3浮点数类型 57
3.2.4小数类型 58
3.2.5布尔型 59
3.3引用类型 61
3.2.6检查和不检查 61
3.3.1对象类型 63
3.3.2字符串类型 64
3.4各种简单类型的数据间转换 65
3.5装箱和拆箱转换 68
3.5.1装箱转换 68
3.5.2拆箱转换 70
第4章运算符和表达式 72
4.1 C#运算符概述 72
4.2赋值运算符及其表达式 74
4.3算术运算符及其表达式 75
4.3.1加法和减法运算符 75
4.3.2自增和自减运算符 76
4.3.3乘法和除法运算符 77
4.3.4取余运算符 78
4.4关系运算符及其表达式 79
4.5逻辑运算及其表达式 80
4.6位运算符及其表达式 81
4.8.1 new运算符 84
4.8其他运算符 84
4.7条件运算符及其表达式 84
4.8.2 sizeof运算符 85
4.8.3 is、as和typeof运算符 85
4.8.4 checked和unchecked 87
运算符 87
第5章数据的输入和输出 89
5.1控制台输入 89
5.1.1 Console.Read()方法 89
5.1.2 Console.ReadLine()方法 90
5.2.1数据的格式化 91
5.2控制台输出 91
5.2.2格式化说明符 94
5.3处理字符串的方法 102
5.3.1 String类的字符串方法 102
5.3.2 StringBuilder类的 103
字符串方法 103
5.3.3 Parse()方法 105
5.3.4 Convert类 105
6.1.1 if语句 108
第6章程序控制语句 108
6.1选择结构程序设计 108
6.1.2 switch语句 112
6.1.3程序举例 115
6.2循环结构程序设计 116
6.2.1 while语句 116
6.2.2 do-while语句 118
6.2.3 for语句 119
6.2.4 foreach语句 121
6.2.5程序举例 128
6.3 break语句、continue语句 129
和goto语句 129
6.3.1 break语句 129
6.3.2 continue语句 130
6.3.3 goto语句 130
6.3.4程序举例 131
7.1一维数组 134
7.1.1一维数组的定义和初始化 134
第7章数组 134
7.1.2引用一维数组元素 136
7.2二维数组 140
7.2.1 二维数组的定义和初始化 140
7.2.2初始化二维数组 141
7.2.2引用二维数组元素 142
7.3不规则数组 147
7.3.1 二维不规则数组的定义 148
和初始化 148
7.3.2二维不规则数组的引用 149
7.4使用System.Array类的 151
方法和属性 151
7.4.1 Array类的属性 151
7.4.2使用Array类构造数组 152
7.4.3使用Array类的方法 154
第8章类 160
8.1面向对象程序设计思想 160
8.2类及其构成 163
8.3创建对象 165
8.4.1常量成员 166
8.4类的数据成员 166
8.4.2变量成员 167
8.4.3将类定义为数据成员 178
8.5类的方法成员 179
8.5.1定义类的方法成员 180
8.5.2使用方法 181
8.5.3带参数的方法 185
8.5.4静态方法 192
8.5.5方法重载 193
8.5.6其他类方法 195
8.5.7递归方法 203
8.6类的属性成员 204
8.7索引器 209
8.8运算符重载 212
8.8.1重载运算符方法 212
8.8.2重载双目运算符 213
8.8.3重载单目数学运算符 216
8.8.4重载关系运算符 217
9.1.1继承的概念 219
第9章继承与多态 219
9.1继承机制 219
9.1.2继承的工作机制 221
9.1.3派生类的构造函数和 224
析构函数 224
9.1.4 base关键字的另一用途 226
9.1.5隐藏基类成员 226
9.1.6使用protected保护 228
访问方式 228
访问方式 229
9.1.7使用internal内部 229
9.2多态性和虚方法 230
9.2.1 多态性 230
9.2.2虚方法 233
9.3抽象类和抽象方法 238
9.3.1抽象类 238
9.3.2抽象方法 239
9.4密封类和密封方法 245
9.4.1密封类 245
9.4.2密封方法 246
9.5终极基类Object 247
9.5.1 Object类中的方法 247
9.5.2装箱/拆箱前后的数据类型 249
9.6类转换 250
9.6.1关键字is 250
9.6.2关键字as 252
9.6.3不同类型的对象 253
组成的数组 253
10.1.1接口与类 256
10.1 接口 256
第10章接口、代理和事件 256
10.1.2接口的定义 257
10.1.3接口的实现与使用 262
10.1.4接口映射 266
10.1.5显式接口成员实现 267
10.1.6接口实现的继承 271
10.1.7接口的重新实现 276
10.1.8接口的查询 278
10.2.1代理的概念 279
10.2代理 279
10.2.2代理的定义 280
10.2.3代理的使用 281
10.2.4 Delegate类和 284
MulticastDelegate类 284
10.2.5多重代理的实现 288
10.3 事件 290
10.3.1事件的概念 290
10.3.2创建事件和使用事件 291
10.3.3多播事件 300
第1 1章结构和枚举 302
11.1 结构 302
11.1.1结构与类 302
11.1.2结构的定义 303
11.1.3使用和访问结构成员 304
11.1.4结构的嵌套 306
11.1.5结构与类的区别 307
11.2枚举 308
11.2.1枚举的定义 308
11.2.2使用和访问枚举成员 311
第12章命名空间 313
12.1命名空间 313
12.2定义命名空间 313
12.3使用命名空间 315
12.3.1命名空间的完全限定名 315
12.3.2 C#应用程序的组织结构 316
12.3.3 using语句 317
13.1异常处理的概念 322
第13章异常处理 322
13.2 C#的异常控制机制 324
13.2.1使用try/catch语句抛出和 324
处理异常 324
13.2.2使用throw语句抛出异常 329
13.2.3使用finally语句添加最后 331
执行的操作 331
13.3 .NET Framework 中的异常类 333
13.3.1 C#异常处理的内部机制 333
异常类 334
13.3.2 .NET Framework中的 334
13.4自定义异常类 338
第14章编译预处理和调试技术 341
14.1程序中的错误 341
14.2逐行检查代码 342
14.3编译预处理 342
14.3.1 定义预处理 342
14.3.2条件编译预处理 343
和警告 346
14.3.3输出代码中的错误 346
14.3.4修改行号 348
14.3.5区域预编译 349
14.4使用调试工具 350
14.4.1几个基本调试概念 350
14.4.2常用的调试策略 353
14.4.3程序的调试信息 353
第15章代码属性 359
15.1概述 359
15.2使用代码属性 359
15.3.2 System.Attribute类 362
15.3.NET框架下的预定义属性类 362
15.3.1 带参数的属性 362
15.3.3描述程序集和模 363
块的属性 363
15.3.4描述源代码的代码属性 365
15.4自定义代码属性类 370
15.5检索有关的代码属性信息 373
第16章不安全代码 378
16.1不安全代码 378
16.2.1 指针 379
16.2 不安全的代码块 379
16.2.2 unsafe关键字 380
16.2.3 fixed语句 381
16.3 C#程序中的指针 383
16.3.1用指针访问对象 383
16.3.2指针运算 386
第17章创建Windows应用程序 387
17.1什么是Windows窗体 387
17.2创建简单的WinForm程序 388
17.3.2属性 391
17.3 Windows窗体应用程序模型 391
17.3.1 窗体 391
17.3.3控件 394
17.3.4事件 397
17.3.5 Windows Forms程序设计 398
的步骤 398
17.4 WinForm控件 398
17.4.1常用控件 398
17.4.2示例 399
17.5.1菜单设计基础知识 406
17.5 Visual C#的菜单设计与编程 406
17.5.2示例 407
17.5.3用程序完成菜单设计 410
17.6 Visual C#中的MDI编程 414
第18章C#组件编程 418
18.1用C#做类库 418
18.1.1制作一个组件 418
18.1.2使用DLL 422
18.2.1 创建控件 427
18.2用C#做自定义控件 427
18.2.2使用控件 431
18.3用C#做用户控件 432
18.3.1控件制作 432
18.3.2使用组件 434
18.4在WinForm中使用COM组件 437
播放视频文件 437
第19章C#数据库编程 441
19.1 ADO.NET概述 441
19.2 ADO.NET的数据访问对象 444
19.3 C#数据库的Windows编程 454
19.4 Crystal Reports 461
19.4.1 Crystal Reports概述 461
19.4.2报表设计 462
19.4.3创建简单报表 464
19.4.4用CrystalReportViewer 466
报表查看器承载报表 466
20.1 Web编程技术的发展 468
第20章开发Web应用程序 468
20.2 ASP.NET的开发环境配置 469
20.3编写ASP.NET Web应用程序 470
20.3.1一个简单的Web 470
应用程序 470
20.3.2 ASP.NET的执行机制 472
20.3.3 Web表单编程 477
20.4 ASP.NET服务器端控件 480
20.4.1 Web服务器控件 480
20.4.2 HTML服务器控件 484
20.4.3验证控件 485
20.4.4用户控件 488
20.5 Web应用中使用ADO.NET 492
访问数据库 492
20.6创建Web服务 495
20.6.1 Web服务 495
20.6.2一个简单的Web服务 496
20.6.3使用Web服务 498
访问数据库 498