
本书基于Visual Studio 2008/.NET Framework 3.5开发和运行环境,阐述C#3.0语言的基础知识,以及使用C#3.0语言的实际开发应用实例。具体内容包括C#.NET语言基础、面向对象编程、结构、枚举、泛型、特性、语言集成查询、多线程编程技术、数值日期和字符串处理、文件和流输入输出、集合、数据库访问、Windows窗体应用程序、WPF应用程序、ASP.NET Web应用程序设计等。
本书作者结合多年的程序设计、开发及授课经验,精选大量的实例,由浅入深、循序渐进地介绍C#.NET程序设计语言,让读者能够较为系统全面地掌握程序设计的理论和应用。
本书可作为高等学校各专业的计算机程序设计教程,同时也可作为广大程序设计开发者、爱好者的自学参考书。
本书配有实验和辅导教材《C#.NET程序设计实验指导》,提供了大量的思考与实践练习,让读者从实践中巩固和应用所学的知识。
程序设计是大专院校计算机、电子信息、工商管理等相关专业的必修课程,C#作为一门新的程序设计语言,集中了C、C++和Java等语言的优点,是一门现代的、优越的、具有广阔发展前景的程序设计语言。
本书主要基于Visual Studio 2008/.NET Framework 3.5开发和运行环境,阐述C#3.0语言的语言基础知识,以及使用C#3.0语言的实际开发应用实例。
本书内容共分为3部分,第1部分详细阐述C#面向对象程序设计语言的基础知识,包括C#.NET语言概述、C#.NET语言基础、面向对象编程、结构、枚举、泛型、特性、语言集成查询、多线程编程技术; 第2部分阐述基于.NET Framework公共类库的程序设计,包括数值日期和字符串处理、文件和流输入输出、集合、数据库访问; 第3部分介绍C#.NET应用程序设计技术,包括Windows窗体应用程序、WPF应用程序、ASP.NET Web应用程序设计。
本书配套教材《C#.NET程序设计实验指导》,提供本书的上机实验指导,以及本书各章节的习题测试和习题参考解答。
本书特点:
(1) 由浅入深、循序渐进、重点突出、通俗易学。
(2) 理论与实践相结合,通过大量的实例阐述程序设计的基本原理,使读者不仅掌握理论知识,同时掌握大量程序设计的实用案例。
(3) 提供了大量的思考与实践练习,让读者从实践中巩固和应用所学的知识。
本教材涉及的各章节所有的源程序代码和相关素材,以及供教师参考的教学电子文稿均可以通过清华大学出版社的教学资料网站(www.tup.tsinghua.edu.cn)下载。
本书的第1~第11章由江红副教授编写,第12~第21章及附录由余青松高级工程师编写。由于时间和编者学识有限,书中不足之处在所难免,敬请诸位同行、专家和读者指正。
编者
2009年12月
第1部分C#.NET面向对象程序设计语言的基础知识
第1章C#语言介绍
1.1C#语言概述
1.1.1C#语言简介
1.1.2C#语言的特点和开发应用范围
1.2C#语言的编译和运行环境
1.2.1C#语言与.NET Framework
1.2.2C#的运行环境
1.2.3C#的开发环境
1.3创建简单的C#程序
1.3.1Hello,World程序
1.3.2代码分析
1.3.3编译和运行结果
1.4C#程序的基本结构
1.4.1程序结构
1.4.2命名空间
1.4.3类和对象
1.4.4Main方法
1.4.5注释
1.5本章小结
第2章数据类型、变量和常量
2.1数据类型
2.1.1类型系统
2.1.2值类型
2.1.3引用类型
2.1.4装箱和拆箱
2.2变量
2.2.1变量的命名规则
2.2.2变量的声明和赋值
2.2.3变量的分类
2.2.4变量的作用域
2.3常量
2.4预定义数据类型
2.4.1整型
2.4.2浮点类型
2.4.3decimal类型
2.4.4bool类型
2.4.5字符类型
2.4.6object类型
2.4.7string类型
2.4.8可以为null的类型
2.5类型转换
2.5.1隐式转换
2.5.2显式转换(强制转换)
2.5.3Convert类提供的类型转换方法
2.5.4checked关键字
2.6本章小结
C#.NET程序设计教程
第3章语句、运算符和表达式
3.1语句
3.2运算符
3.2.1算术运算符
3.2.2关系和类型测试运算符
3.2.3逻辑运算符
3.2.4赋值运算符
3.2.5字符串运算符
3.2.6位运算符
3.2.7条件运算符
3.2.8其他运算符
3.2.9运算符优先级
3.3表达式
3.3.1表达式的组成
3.3.2表达式的书写规则
3.4本章小结
第4章程序流程和异常处理
4.1顺序结构
4.2选择结构
4.2.1if语句
4.2.2switch语句
4.3循环结构
4.3.1for循环
4.3.2while循环
4.3.3do…while循环
4.3.4foreach循环
4.3.5循环的嵌套
4.4跳转语句
4.4.1goto语句
4.4.2break语句
4.4.3continue语句
4.4.4return语句
4.5异常处理
4.5.1异常处理机制
4.5.2创建和引发异常
4.6本章小结
第5章数组和指针
5.1数组
5.1.1一维数组
5.1.2多维数组
5.1.3交错数组
5.1.4数组的基本操作和排序
5.1.5作为对象的数组
5.2指针
5.2.1不安全代码
5.2.2指针
5.3本章小结
第6章类和对象
6.1面向对象概念
6.1.1对象的定义
6.1.2封装
6.1.3继承
6.1.4多态性
6.2类和对象
6.2.1类的声明
6.2.2创建对象
6.2.3访问修饰符
6.3嵌套类
6.3.1嵌套类的声明
6.3.2嵌套类和包含类的关系
6.2.3嵌套类的访问
6.4分部类
6.5本章小结
第7章类成员
7.1类的成员
7.1.1数据成员
7.1.2函数成员
7.1.3静态成员和实例成员
7.2字段
7.2.1字段的声明和访问
7.2.2静态字段和实例字段
7.2.3常量字段
7.2.4只读字段
7.2.5可变字段
7.3方法
7.3.1方法的声明和调用
7.3.2参数的传递
7.3.3方法的重载
7.3.4静态方法和实例方法
7.3.5分部方法
7.3.6外部方法
7.4属性
7.4.1属性的声明和访问
7.4.2静态属性和实例属性
7.4.3自动实现的属性
7.5索引器
7.5.1索引器的声明和访问
7.5.2索引器的重载
7.6运算符重载
7.6.1运算符重载概述
7.6.2转换运算符
7.7构造函数和析构函数
7.7.1实例构造函数
7.7.2私有构造函数
7.7.3静态构造函数
7.7.4析构函数
7.8本章小结
第8章继承和多态
8.1继承和多态的基本概念
8.1.1继承和多态
8.1.2继承的类型
8.2派生类
8.2.1派生类的简介
8.2.2访问关键字this和base
8.2.3虚方法、重写方法和隐藏方法
8.3抽象类和抽象方法
8.3.1抽象类
8.3.2抽象方法
8.4密封类和密封方法
8.4.1密封类
8.4.2密封方法
8.5接口
8.5.1接口声明
8.5.2分部接口
8.5.3接口成员
8.5.4接口实现
8.5.5接口继承
8.6本章小结
第9章委托和事件
9.1委托
9.1.1委托的声明
9.1.2委托的实例化和调用
9.1.3匿名方法委托
9.1.4多播委托
9.1.5委托的兼容性
9.2事件
9.2.1事件处理机制
9.2.2事件的声明
9.2.3事件的订阅和取消
9.2.4静态事件和实例事件
9.2.5.NET Framework事件模型
9.2.6综合举例: 实现事件的步骤
9.3本章小结
第10章结构和枚举
10.1结构
10.1.1结构概述
10.1.2结构的声明
10.1.3结构的调用
10.1.4嵌套结构
10.1.5分部结构
10.1.6结构成员
10.2枚举
10.2.1枚举概述
10.2.2枚举声明
10.2.3枚举的使用
10.2.4枚举的运算
10.2.5System.Enum
10.3本章小结
第11章泛型
11.1泛型的基本概念
11.1.1引例ArrayList
11.1.2引例List<T>
11.1.3泛型的概念
11.2泛型的定义
11.2.1泛型的简介
11.2.2泛型类型参数
11.2.3泛型参数的约束
11.3泛型类
11.4泛型接口
11.5泛型方法
11.6泛型委托和泛型事件
11.6.1泛型委托
11.6.2泛型事件
11.7default关键字
11.8综合举例
11.9本章小结
第12章特性
12.1特性概述
12.2特性的使用
12.3预定义通用特性类
12.3.1ConditionalAttribute类
12.3.2ObsoleteAttribute类
12.3.3AttributeUsageAttribute类
12.3.4全局特性
12.4自定义特性类
12.5使用反射访问特性
12.6本章小结
第13章语言集成查询
13.1相关语言要素
13.1.1初始值设定项
13.1.2匿名类型
13.1.3Lambda表达式
13.1.4扩展方法
13.2LINQ基本操作
13.2.1LINQ基本概念
13.2.2LINQ查询操作
13.3标准查询运算符
13.3.1数据排序
13.3.2数据筛选
13.3.3数据投影
13.3.4数据分组
13.3.5联接运算
13.3.6数据分区
13.3.7限定符运算
13.3.8聚合运算
13.3.9集合运算
13.3.10生成运算
13.3.11元素操作
13.3.12串联运算
13.3.13相等运算
13.3.14数据类型转换
13.4LINQ to Objects
13.4.1LINQ to Objects概述
13.4.2LINQ和字符串
13.4.3LINQ和文件
13.5本章小结
第14章多线程编程技术
14.1线程处理概述
14.1.1进程和线程
14.1.2线程的优缺点
14.2创建多线程应用程序
14.2.1C#应用程序主线程
14.2.2创建和启动新线程
14.2.3暂停和中断线程
14.3线程优先级和线程调度
14.4线程状态和生命周期
14.5线程同步
14.5.1线程同步处理
14.5.2使用lock语句同步代码块
14.5.3使用监视器同步代码块
14.5.4同步事件和等待句柄
14.5.5使用Mutex同步代码块
14.6线程池
14.6.1线程池的基本概念
14.6.2创建和使用线程池
14.7本章小结
第2部分.NET Framework类库基本应用
第15章数值、日期和字符串处理
15.1数学函数
15.1.1Math类和数学函数
15.1.2Random类和随机函数
15.2日期和时间处理
15.3字符串处理
15.3.1String类
15.3.2StringBuilder类
15.3.3字符编码
15.4正则表达式
15.4.1正则表达式语言
15.4.2正则表达式类
15.4.3正则表达式示例
15.5本章小结
第16章文件和流I/O
16.1文件和流操作概述
16.2磁盘、和文件的基本操作
16.2.1磁盘的基本操作
16.2.2的基本操作
16.2.3文件的基本操作
16.3文本文件的读取和写入
16.3.1StreamReader类和StreamWriter类
16.3.2StringReader类和StringWriter类
16.4二进制文件的读取和写入
16.4.1FileStream类
16.4.2BinaryReader类和BinaryWriter类
16.5通用I/O流类
16.6本章小结
第17章集合和数据结构
17.1C#集合和数据结构概述
17.2列表类集合类型
17.2.1ArrayList
17.2.2List<T>
17.3字典类集合类型
17.3.1Hashtable
17.3.2Dictionary<TKey,TValue>
17.3.3SortedList
17.3.4SortedList<TKey,TValue>
17.3.5SortedDictionary<TKey,TValue>
17.4队列集合类型
17.5堆栈集合类型
17.6HashSet<T>集合类型
17.7位集合
17.7.1BitArray
17.7.2BitVector32
17.8专用集合
17.8.1NameValueCollection
17.8.2StringDictionary
17.8.3StringCollection
17.9本章小结
第18章数据库访问
18.1ADO.NET概述
18.1.1ADO.NET的基本概念
18.1.2ADO.NET的结构
18.1.3.NET Framework数据提供程序
18.1.4ADO.NET DataSet
18.2使用ADO.NET连接和操作数据库
18.2.1使用数据提供程序访问数据库的步骤
18.2.2使用DataAdapter和DataSet访问数据库的步骤
18.3使用SQL命令和存储过程访问数据库
18.3.1建立数据库连接
18.3.2查询数据库表数据
18.3.3插入数据库表数据
18.3.4更新数据库表数据
18.3.5删除数据库表数据
18.3.6使用存储过程访问数据库
18.4使用DataAdapter和DataSet访问数据库
18.4.1查询数据库表数据
18.4.2维护数据库表数据
18.5LINQ to SQL
18.5.1使用LINQ to SQL的典型步骤
18.5.2LINQ to SQL查询举例
18.5.3LINQ to SQL数据操作
18.6LINQ to DataSet
18.6.1LINQ to DataSet概述
18.6.2LINQ to DataSet查询
18.7本章小结
第3部分C#.NET应用程序开发
第19章Windows窗体应用程序
19.1Windows窗体应用程序概述
19.1.1Windows窗体应用程序
19.1.2从命令行创建简单的Windows窗体应用程序
19.1.3Windows窗体应用程序的代码分析
19.1.4使用Visual Studio开发Windows窗体应用程序
19.2窗体和控件概述
19.2.1通用属性
19.2.2通用事件
19.2.3窗体属性、事件和方法
19.3常用Windows窗体控件
19.3.1标签、文本框和命令按钮
19.3.2单选按钮、复选框和分组
19.3.3列表选择控件
19.3.4图形存储和显示控件
19.3.5Timer控件
19.3.6通用对话框
19.3.7菜单设计
19.4本章小结
第20章WPF应用程序
20.1WPF应用程序概述
20.1.1WPF简介
20.1.2WPF应用程序的构成
20.2创建WPF应用程序
20.2.1创建简单的WPF应用程序
20.2.2WPF应用程序布局
20.2.3WPF应用程序常用控件
20.3WPF应用程序与图形和多媒体
20.3.1图形和多媒体概述
20.3.2图形、图像、画笔和位图效果
20.3.3多媒体
20.3.4动画
20.4本章小结
第21章ASP.NET Web应用程序
21.1ASP.NET Web介绍
21.1.1ASP.NET Web应用程序概述
21.1.2创建ASP.NET Web应用程序
21.2ASP.NET Web页面
21.2.1ASP.NET Web页面概述
21.2.2ASP.NET Web服务器控件概述
21.2.3创建ASP.NET页面
21.3ASP.NET页面会话状态和页面导航
21.3.1ASP.NET Web应用程序上下文
21.3.2ASP.NET Web应用程序事件
21.3.3ASP.NET Web页面导航
21.4ASP.NET Web应用程序的布局和导航
21.4.1ASP.NET Web母版页
21.4.2ASP.NET Web导航控件
21.4.3设计ASP.NET Web站点
21.5ASP.NET主题和外观概述
21.5.1ASP.NET主题和外观
21.5.2定义主题
21.5.3定义外观
21.5.4定义CSS样式
21.5.5在页面中使用主题
21.5.6应用举例
21.6本章小结
附录A.NET Framework概述
附录BC#编译器和预处理器指令
附录CVisual Studio简介
附录DC#3.0关键字
附录 E控制台I/O和格式化字符串
附录FXML文档注释
附录GSQL Server Express范例数据库
附录HASCII码表
附录 I程序集、应用程序域和反射
参考文献