标题：C#标准教程
图书简介
作者：李斌 等编著  丛书名：C#标准教程
出版日期：2011年3月
书号：978-7-122-10326-0
开本：16
装帧：平
版次：1版1次
页数：416页
内容简介
C#语言作为.NET开发平台中最重要的一门语言，越来越受到广大程序开发人员的青睐和热捧。本书以微软最新版本的C # 4.0为基础，详细讲解了如何快速掌握C # 4.0的相关知识，是一本有效、实用的初级入门图书。
本书共分为7篇，第一篇主要讲解了C#的基础知识和基本语法；第二篇主要讲解C#基础编程知识；第三篇主要讲解了如何利用C#进行Windows应用程序开发；第四篇主要讲解了利用C#进行Web应用程序开发的流程，以及如何对其进行调试；第五篇主要讲解了数据库以及XML编程的有关知识；第六篇作为提高部分，讲解了线程、注册表的相关操作；在第七篇中，利用所学知识制作了一个网站，以达到巩固所学的目的。
本书适合于学习C#的初、中级读者。如果是初级读者，使用本书，会使你顺利进入C#开发领域；如果已经具备Visual Studio 2010的开发基础，那么本书将是你提高开发技能的必备用书。此外，本书还可以作为大中专院校及培训机构Visual Studio 2010开发的参考教材。
前 言
近年来，随着计算机技术的迅猛发展，越来越多的人接触到了电脑，而且迫切希望自己开发出一部分相关的简单程序。微软最新开发的Visual C# 4.0语言及其开发环境Visual Studio 2010适应了这个需要。C#语言本身是一门开发语言，并随着.NET Framework一起由微软开发和发布。目前.NET Framework的最新版本是4.0，因此也被称为C# 4.0。本书以最新的C# 4.0和Visual Studio 2010为基础，循序渐进地介绍了从入门到深入掌握C# 4.0的各个使用方面。
为了方便广大读者学习，编者结合自己的学习和开发经验编写了本书。本书全面介绍了C#基本语法、C# Windows应用程序开发、C# Web应用程序开发、C#数据操作、C#高级编程等关键技术，在具体讲解内容时，配以大量实例，并附有详细的代码注释。
本书特点
1．内容全面，详略得当
本书共分7篇18章，在讲解过程中，采用循序渐进、逐步深化的模式，结合实际范例进行讲解，几乎涵盖C# 4.0的所有知识点。
2．结构清晰，讲解规范
为了方便读者学习，本书首先让读者了解C# 4.0的基本概念，在此基础上，介绍了其开发环境Visual Studio 2010的详细安装过程，接着讲解了C#的基本语法以及C#的Windows开发和Web开发，最后利用所学知识制作了信息发布系统，巩固了所学知识。
3．注重操作，强化实践
本书在讲解中，重点突出实用性，过程步骤清晰、易于操作。全书采用循序渐进的教学方式，实现的是代码配以分析的讲解方式，将基础知识与实例教学进行完美结合。读者可以根据本书讲解进行实际操作，即可开发出相应的应用程序，从而逐步掌握Microsoft Visual Studio 2010和C# 4.0的相关技术。
4．精编案例，深入剖析
在写作本书的过程中，编者结合自己的学习和开发经验，列举了大量实战案例，这些案例全部通过调试，而且还配以详细的代码解析，并将源文件存储在配套光盘中。读者如需查看各个案例的源文件，从光盘中即可找到。
本书内容
本书共分为7篇18章，主要内容如下。
第一篇（第1章～第4章）初识C#。
主要介绍了关于C#的一些基本知识，包括认识C#、浅析C#基本语法、C#面向对象编程基础、面向对象的高级技术等内容。
第二篇（第5章～第7章）C#编程基础。
主要介绍了关于C#编程基础的一些基本内容，包括字符与字符串常量、数组、Windows窗体等。
第三篇（第8章～第9章）C# Windows应用程序开发。
该部分内容在前面所学基础上，主要介绍了C# Windows应用程序开发的相关知识，包括Windows应用程序开发基础和使用Windows控件、组件和对话框等。
第四篇（第10章～第12章）C# Web应用程序开发。
在前面介绍开发Windows应用程序的基础上，主要介绍了C# Web应用程序开发的一些知识，包括开发Web应用程序、跟踪调试Web应用程序、配置Web应用程序等。
第五篇（第13章～第15章）C#数据操作。
该部分结合前面章节学习的内容，介绍了C#数据操作的有关知识，包括C#数据访问技术、C#数据绑定技术、XML编程等。
第六篇（第16章～第17章）C#高级编程。
该部分属于提高部分，主要介绍了关于C#高级编程的有关内容，包括文件和注册表操作、C#中的线程问题等。
第七篇（第18章）C#综合案例。
通过制作一个具有典型代表性的Web应用程序，详细介绍了C# 4.0 Web应用程序的开发过程，通过对整个流程的介绍，不仅复习了前面学习的知识，而且也了解了项目实践的流程和技巧。
本书读者
希望从事软件和网站开发领域的新手。
C#或基础语言学习人员。
C#入门者或ASP.N E T入门者。
从事C#编程的技术开发人员。
想自学C#开发软件和网站的计算机爱好者。
大中专院校的学生。
本书编者
本书主要由李斌编写，其他参与编写的人员有刘成、马臣云、潘娜、阮履学、陶则熙、王大强、王磊、徐琦、许少峰、颜盟盟、杨娟、杨瑞萍、于海波、俞菲、曾苗苗、赵莹、朱存等。
目 录
第1篇 初识C#
第1章 认识C#及其相关特性 2
1.1 C#简介 2
1.1.1 C#语言特点及概述 2
1.1.2 C#与C、C++的关系 3
1.1.3 C#与.NET Framework框架的关系 3
1.1.4 C#中命名空间的作用 4
1.2 Visual Studio 2010简介 6
1.2.1 Visual Studio 2010的历史与现在 6
1.2.2 首选Visual Studio 2010开发C#的原因 6
1.2.3 Visual Studio 2010的安装 8
1.2.4 熟悉Visual Studio 2010的使用环境 10
1.3 编写第一个经典Windows应用程序 12
1.3.1 Windows应用程序概念辨析 12
1.3.2 开发经典的Hello World Windows控制台应用程序 12
1.4 开发第一个Web应用程序 14
1.4.1 Web应用程序概述 14
1.4.2 开发经典的Hello World Web应用程序 14
1.4.3 Windows应用程序与Web应用程序的异同点 17
1.5 本章小结 18
1.6 本章习题 18
第2章 浅析C#基本语法 20
2.1 C#中的变量和常量 20
2.1.1 变量简介 20
2.1.2 变量的作用域和赋值 20
2.1.3 声明一个变量 22
2.1.4 变量中的值类型 23
2.1.5 变量中的引用类型 25
2.1.6 变量中的枚举类型 26
2.1.7 对变量进行类型转换 28
2.1.8 常量定义及其使用 29
2.2 C#中的运算符与表达式 30
2.2.1 表达式和运算符简介 30
2.2.2 赋值运算符 33
2.2.3 算术运算符 34
2.2.4 条件运算符 34
2.2.5 关系运算符 35
2.2.6 逻辑运算符 36
2.2.7 移位运算符 37
2.2.8 其他重要的运算符 38
2.2.9 运算符的优先级 39
2.2.10 运算符的重载 40
2.3 流程控制语句 42
2.3.1 使用选择语句 42
2.3.2 使用循环语句 44
2.3.3 使用跳转语句 47
2.4 C#中的命令行编译器 51
2.4.1 利用C#编译器进行命令行生成 51
2.4.2 设置相关环境与参数 52
2.4.3 编译C#类库 53
2.5 控制台程序 54
2.5.1 C#语言中的Main方法简介 54
2.5.2 C#语言中的WriteLine方法简介 57
2.6 本章小结 58
2.7 本章习题 58
第3章 C#面向对象编程基础 59
3.1 面向对象编程的基本概念 59
3.2 类 59
3.2.1 类的概念 59
3.2.2 声明一个类 60
3.2.3 类成员的声明和访问 61
3.3 接口 64
3.3.1 接口的概念和声明 64
3.3.2 接口的定义和实现 64
3.4 对象 66
3.4.1 对象的声明和访问 66
3.4.2 对象和类的关系 67
3.5 方法 68
3.5.1 方法的声明和参数 68
3.5.2 静态方法和非静态方法 69
3.5.3 重载方法 71
3.5.4 析构函数 72
3.5.5 构造函数 73
3.6 属性 77
3.6.1 属性的有关概念 78
3.6.2 如何使用属性 78
3.7 本章小结 82
3.8 本章习题 82
第4章 面向对象的高级技术 83
4.1 封装技术 83
4.1.1 封装的作用 83
4.1.2 如何实现封装 84
4.2 多态技术 86
4.2.1 多态的作用 86
4.2.2 如何实现多态 86
4.3 继承技术 88
4.3.1 继承的作用 88
4.3.2 如何实现继承 88
4.4 匿名方法的定义和使用 89
4.5 抽象类与抽象方法 90
4.5.1 抽象类与抽象方法概述及声明 90
4.5.2 如何使用抽象类与抽象方法 91
4.6 异常处理 92
4.6.1 异常处理简介 92
4.6.2 抛出和捕获异常 92
4.6.3 预定义异常 93
4.6.4 使用try…catch…finally语句处理异常 94
4.6.5 使用throw语句处理异常 94
4.6.6 用户自定义异常 95
4.6.7 使用finally块 95
4.7 域 96
4.7.1 域的用途 97
4.7.2 域的声明 97
4.8 本章小结 97
4.9 本章习题 97
第2篇 C#编程基础
第5章 字符与字符串常量 100
5.1 字符类数据Char 100
5.1.1 Char类数据简介 100
5.1.2 使用Char类数据 100
5.2 字符串类数据String 102
5.2.1 String类数据简介 102
5.2.2 使用String类数据 102
5.2.3 比较两个字符串 103
5.2.4 格式化字符串 104
5.2.5 截取字符串 106
5.3 可变字符串类StringBuilder 106
5.3.1 定义StringBuilder类 107
5.3.2 使用StringBuilder类 107
5.3.3 StringBuilder类与String类的区别 108
5.4 本章小结 108
5.5 本章习题 108
第6章 数组 110
6.1 数组简介 110
6.2 一维数组的声明和使用 111
6.3 二维数组的声明和使用 112
6.4 交错数组的声明及使用 113
6.5 数组的接口 114
6.6 数组基本操作 115
6.6.1 遍历整个数组 115
6.6.2 对数组进行排序 116
6.6.3 复制数组元素 117
6.6.4 合并与拆分数组 118
6.7 ArrayList类 120
6.7.1 ArrayList类简介 120
6.7.2 添加与删除ArrayList类元素 121
6.7.3 遍历ArrayList类元素 122
6.7.4 查找ArrayList类指定元素的索引 124
6.8 本章小结 125
6.9 本章习题 125
第7章 Windows窗体 127
7.1 Form窗体 127
7.1.1 Form窗体简介 127
7.1.2 添加和删除一个窗体 127
7.1.3 多窗体 130
7.1.4 窗体有关属性 131
7.1.5 显示与隐藏窗体 132
7.1.6 窗体的常用方法 133
7.2 继承窗体 134
7.2.1 继承窗体简介 134
7.2.2 创建继承窗体 134
7.2.3 修改继承的控件属性 135
7.3 本章小结 136
7.4 本章习题 136
第3篇 C# Windows应用程序开发
第8章 Windows应用程序开发基础 140
8.1 Windows窗体应用程序简介 140
8.2 Windows应用程序的开发界面 140
8.2.1 解决方案资源管理器 141
8.2.2 工具箱 142
8.2.3 工具栏 143
8.3 Windows应用程序开发的一般流程 144
8.4 开发一个简单的Windows应用程序 145
8.4.1 添加菜单栏、工具栏与状态栏 145
8.4.2 为状态栏添加其他控件 148
8.4.3 添加相关文本框和按钮 148
8.4.4 为添加的控件添加响应事件 149
8.5 本章小结 150
8.6 本章习题 150
第9章 使用Windows控件、组件和对话框 152
9.1 控件简介 152
9.1.1 控件的详细分类及作用 152
9.1.2 控件的命名规范 152
9.2 标准控件 153
9.3 公共控件 153
9.3.1 利用Label控件显示相关文本或标签 153
9.3.2 利用Button控件单击产生动作 155
9.3.3 利用TextBox控件输入文本或数字 156
9.3.4 利用ListBox控件显示文件列表 158
9.3.5 利用TreeView控件制作树目录 160
9.3.6 利用DateTimePicker控件选择相关日期 161
9.3.7 利用ProgressBar控件显示相关操作进度 163
9.4 状态栏和菜单 164
9.4.1 利用ToolStrip控件显示工具栏信息 165
9.4.2 利用ContextMenuStrip控件制作弹出式菜单 166
9.4.3 其他状态栏和菜单控件 167
9.5 容器控件 169
9.5.1 利用TabControl控件显示多个选项卡 169
9.5.2 利用SplitContainer分隔相邻的两个面板 171
9.5.3 利用FlowLayoutPanel控件排列内容 171
9.6 组件 172
9.6.1 利用HelpProvider组件关联提供的上下文帮助 172
9.6.2 利用Timer组件定期引发某个事件的发生 174
9.7 对话框 175
9.7.1 利用SaveFileDialog对话框将文件保存到指定位置 175
9.7.2 利用OpenFileDialog对话框打开指定文件 177
9.8 定制控件 179
9.9 本章小结 179
9.10 本章习题 179
第4篇 C# Web应用程序开发
第10章 开发Web应用程序 182
10.1 Web应用程序开发简介 182
10.2 创建第一个Web应用程序 183
10.2.1 解决方案资源管理器 183
10.2.2 工具箱 184
10.2.3 生成第一个Web应用程序 184
10.2.4 Web窗体 186
10.2.5 开发Web应用程序 188
10.3 Web应用程序常用控件 189
10.3.1 标准控件 189
10.3.2 验证控件 196
10.3.3 导航控件 200
10.3.4 登录控件 206
10.4 ASP.N E T内置对象 209
10.4.1 利用Page对象加载或初始化事件 209
10.4.2 利用Request对象从浏览器中得到数据 212
10.4.3 利用Response对象输出信息到客户端 214
10.4.4 利用Server对象访问远程服务器 217
10.4.5 利用Application对象生成一个网站全局变量 218
10.4.6 利用Cookie对象保存信息 220
10.4.7 利用Session对象保存临时会话状态 221
10.4.8 利用Cache对象实现缓存 222
10.5 本章小结 224
10.6 本章习题 224
第11章 跟踪调试Web应用程序 226
11.1 跟踪应用程序 226
11.1.1 跟踪的定义 226
11.1.2 页面级跟踪和应用程序级跟踪 226
11.2 调试应用程序 229
11.2.1 Web.Config文件简介 229
11.2.2 Web程序在Web.config文件中的常用配置 231
11.2.3 创建Web.config文件 232
11.2.4 启动代码级断点调试 233
11.3 对应用程序进行错误处理 235
11.3.1 错误处理的定义 235
11.3.2 利用Page_Error事件处理错误 236
11.3.3 利用Application_Error程序控制应用程序级错误 237
11.3.4 利用Web.Config控制页面级错误 237
11.4 本章小结 238
11.5 本章习题 238
第12章 配置Web应用程序 239
12.1 应用程序配置简介 239
12.1.1 应用程序配置的定义 239
12.1.2 应用程序配置的作用 239
12.2 配置文件的格式 240
12.2.1 配置文件简介 240
12.2.2 使用配置文件 240
12.3 标准ASP.N E T配置节 245
12.3.1 ASP.N E T常用配置节简介 245
12.3.2 使用标准的ASP.N E T配置节 245
12.4 为Web应用程序设定本地化信息 247
12.5 本章小结 248
12.6 本章习题 248
第5篇 C#数据操作
第13章 C#数据访问技术 250
13.1 SQL Server数据库基础知识 250
13.1.1 数据库概述 250
13.1.2 安装SQL Server 2008数据库 251
13.1.3 创建及删除数据库 259
13.1.4 创建及删除数据表 261
13.1.5 SQL结构化查询语言简介 265
13.1.6 SQL常用语句实例 267
13.2 ADO.N E T数据库简介 270
13.2.1 ADO.N E T技术 270
13.2.2 ADO.N E T的结构和工作原理 271
13.3 数据库连接对象Connection 271
13.3.1 Connection对象简介 271
13.3.2 连接一个数据库 272
13.3.3 关闭已经存在的连接 273
13.4 SQL语句执行对象Command 273
13.4.1 Command对象简介 274
13.4.2 设置数据源的类型 275
13.4.3 使用Command对象对数据库执行增加、删除、修改操作 275
13.5 数据读取对象DataReader 280
13.5.1 DataReader对象简介 280
13.5.2 利用DataReader对象读取数据 281
13.6 本章小结 282
13.7 本章习题 282
第14章 C#数据绑定技术 284
14.1 简单介绍数据绑定 284
14.1.1 简单数据绑定和复杂数据绑定 284
14.1.2 绑定变量 285
14.2 网格视图控件GridView 285
14.2.1 DataGrid控件和GridView控件的异同点 285
14.2.2 GridView控件 286
14.2.3 在GridView控件中修改、删除、选择数据 287
14.2.4 在GridView控件中对数据进行浏览 289
14.3 利用列表控件进行数据绑定 291
14.3.1 将HashTable绑定到RadioButtonList控件 291
14.3.2 将DataReader绑定到ListBox控件 293
14.3.3 将DataSet绑定到DropDownList控件 295
14.3.4 将DataTable绑定到CheckBoxList控件 297
14.4 其他数据绑定控件 299
14.4.1 数据列表：DataList控件 300
14.4.2 单记录显示控件：FormView控件 302
14.4.3 循环控件：Repeater控件 304
14.5 本章小结 306
14.6 本章习题 306
第15章 XML编程 308
15.1 .NET框架中的XML 308
15.1.1 XML的有关概念 308
15.1.2 在XML文档中的对象模型 310
15.1.3 System.Xml命名空间 312
15.1.4 System.Xml命名空间中的类 314
15.1.5 XML架构对象模型 316
15.2 读写流格式的XML文档 320
15.2.1 XmlTextReader类 320
15.2.2 XmlTextWriter类 323
15.3 读取XML文档 323
15.3.1 读取XML节点 323
15.3.2 使用XmlReader读取XML 324
15.3.3 使用XmlDocument读取XML 324
15.4 在DOM中验证XML文档 326
15.5 修改XML文档 329
15.5.1 创建一个新的DOM节点 329
15.5.2 为DOM节点创建属性 330
15.5.3 修改DOM节点 332
15.5.4 删除DOM节点 333
15.6 XML数据转换 334
15.6.1 将字符串转换为.NET Framework数据类型 334
15.6.2 将.NET Framework类型转换为字符串 335
15.7 集成数据对象DataSet 335
15.7.1 使用DataSet加载XML数据 336
15.7.2 使用XmlDataDocument加载关系数据 337
15.8 本章小结 338
15.9 本章习题 338
第6篇 C#高级编程
第16章 文件操作和注册表操作 340
16.1 文件操作 340
16.1.1 .NET中文件和文件夹的类 340
16.1.2 移动、复制、删除文件和文件夹 348
16.1.3 文件流 351
16.1.4 读取与写入文件 351
16.1.5 读写二进制文件 355
16.1.6 读取驱动器信息 361
16.2 注册表操作 363
16.2.1 注册表简介 363
16.2.2 Registry类的使用 364
16.2.3 RegistryKey类的使用 366
16.2.4 写入注册表 369
16.2.5 读取注册表 370
16.3 本章小结 371
16.4 本章习题 372
第17章 线程 373
17.1 线程的基本概念 373
17.1.1 单线程 373
17.1.2 多线程 373
17.2 线程中的基本问题 375
17.2.1 使用线程中的Thread类 375
17.2.2 创建一个线程 376
17.2.3 给线程传递数据 377
17.2.4 挂起与恢复线程 378
17.2.5 后台线程详细操作 379
17.2.6 终止与休眠线程 380
17.2.7 线程的优先级 381
17.2.8 使两线程同步 383
17.3 线程中的高级问题 384
17.3.1 线程中的竞态条件问题 385
17.3.2 线程中的死锁问题 386
17.4 本章小结 387
17.5 本章习题 387
第7篇 C#综合案例
第18章 制作Web信息发布系统 390
18.1 系统总体架构概述 390
18.2 系统需求分析 390
18.2.1 系统功能结构分析 391
18.2.2 网站架设 392
18.3 数据库详细设计 393
18.4 系统文件详细结构设计 394
18.5 编写网站配置文件 395
18.6 前台页面详细开发流程 396
18.6.1 结构布局分析 396
18.6.2 实现导航 396
18.6.3 制作推荐信息页面 397
18.6.4 制作信息搜索页面 402
18.6.5 制作信息的详细阅读页面 404
18.7 制作后台管理模块 406
18.7.1 后台功能需求分析 406
18.7.2 制作管理员登录模块 406
18.7.3 制作信息发布模块 407
18.7.4 制作信息管理模块 411
18.7.5 制作登录认证模块 415
18.7.6 制作安全退出系统模块 416
18.8 本章小结 416