目 录

第1章 C#程序设计简介 1-1

1.1C#语言及其环境 1-1

1.1.1C#的产生与发展 1-1

1.1.2C#的环境——Microsoft.NET 1-2

1.1.3C#的特点 1-5

1.1.4C#和C、C 的比较 1-6

1.1.5C# 与Java 的比较 1-7

1.2 简单的C#程序 1-8

1.2.1Hello World 1-8

1.2.2C#程序设计快速入门 1-12

1.2.3对象的三个基本要素 1-16

1.2.4C#程序的基本构成 1-19

1.3 程序中的输入输出及运算 1-21

1.3.1控制台应用程序的输入输出 1-21

1.3.2Windows应用程序输入输出 1-23

1.3.3常用的运算 1-24

1.4 开发工具 1-25

1.4.1.NET Framework SDK及Visual Studio 1-25

1.4.2使用命令行编译及运行程序 1-25

1.4.3辅助工具EditPlus 1-28

1.4.4辅助工具VisualStudio Code 1-31

1.5 应用程序类型 1-31

1.5.1Visual Studio建立不同类型的应用程序 1-31

1.5.2WPF应用程序 1-33

1.5.3Web应用程序 1-33

1.6 面向对象程序设计的基本概念 1-34

1.6.1面向对象概述 1-34

1.6.2对象、类与实体 1-35

1.6.3封装、继承、多态 1-37

1.6.4面向对象的软件开发过程 1-38

习题1 1-39

第2章 C#语言基础 2-1

2.1 数据类型、变量与常量 2-1

2.1.1数据类型 2-1

2.1.2标识符、关键字 2-4

2.1.3字面常量 2-5

2.1.4变量 2-6

2.1.5C#编码惯例与注释 2-7

2.2 运算符与表达式 2-11

2.2.1算术运算符 2-11

2.2.2关系运算符 2-13

2.2.3逻辑运算符 2-13

2.2.4位运算符 2-14

2.2.5赋值与强制类型转换 2-14

2.2.6条件运算符 2-15

2.2.7运算的优先级、结合性 2-16

2.3 流程控制语句 2-17

2.3.1结构化程序设计的三种基本流程 2-17

2.3.2简单语句 2-17

2.3.3分支语句 2-18

2.3.4循环语句 2-21

2.3.5跳转语句 2-26

2.4 数组 2-28

2.4.1数组的声明 2-28

2.4.2数组的初始化 2-31

2.4.3数组元素的使用 2-32

2.4.4数组与System.Array 2-33

2.4.5使用foreach语句访问数组 2-34

2.4.6数组应用举例 2-34

习题2 2-37

第3章 类、接口与结构 3-1

3.1 类、字段、方法 3-1

3.1.1定义类中的字段和方法 3-1

3.1.2构造方法与析构方法 3-3

3.1.3对象的创建与使用 3-4

3.1.4方法的重载 3-5

3.1.5使用this 3-7

3.2 属性、索引器 3-8

3.2.1属性 3-9

3.2.2索引器 3-13

3.3 类的继承 3-16

3.3.1派生子类 3-17

3.3.2字段的继承、添加与隐藏 3-18

3.3.3方法的继承、添加与覆盖 3-18

3.3.4使用base 3-20

3.3.5父类与子类的转换以及as运算符 3-21

3.3.6属性、索引器的继承 3-23

3.4 修饰符 3-23

3.4.1访问控制符 3-24

3.4.2static 3-29

3.4.3const及readonly 3-31

3.4.4sealed及abstract 3-33

3.4.5new、virtual、override 3-34

3.4.6一个应用模型——单例(Singleton) 3-38

3.5 接口 3-38

3.5.1接口的概念 3-38

3.5.2定义接口 3-39

3.5.3实现接口 3-41

3.5.4对接口的引用 3-42

3.5.5显式接口成员实现 3-43

3.6 结构、枚举 3-45

3.6.1结构 3-45

3.6.2枚举 3-47

习题3 3-49

第4章 C#高级特性 4-1

4.1 泛型 4-1

4.1.1泛型的基本使用 4-1

4.1.2自定义泛型 4-2

4.2 委托及Lambda表达式 4-5

4.2.1委托类型与赋值 4-5

4.2.2Lambda表达式 4-13

4.2.3使用系统定义的Action及Func 4-14

4.3 事件 4-15

4.3.1事件的应用 4-15

4.3.2自定义事件 4-16

4.3.3事件的语法细节 4-19

4.4 异常处理 4-20

4.4.1异常的概念 4-20

4.4.2捕获和处理异常 4-21

4.4.3创建用户自定义异常类 4-25

4.4.4重抛异常及异常链接 4-26

4.4.5算术溢出与checked 4-28

4.5 命名空间、嵌套类型、程序集 4-29

4.5.1命名空间 4-29

4.5.2嵌套类型 4-32

4.5.3程序集 4-36

4.6C#语言中的其他成分 4-41

4.6.1运算符重载 4-41

4.6.2使用Attribute 4-42

4.6.3编译预处理 4-43

4.6.4unsafe及指针 4-44

4.6.5C#几个语法的小结 4-47

习题4 4-47

第5章 基础类及常用算法 1

5.1C#语言基础类 1

5.1.1.NET Framework基础类库 1

5.1.2Object类 2

5.1.3简单数据类型及转换 6

5.1.4Math类及Random类 7

5.1.5DateTime类及TimeSpan类 8

5.1.6Console类 11

5.2 字符串 11

5.2.1String类 12

5.2.2StringBuilder类 13

5.2.3数据的格式化 15

5.3 集合类 16

5.3.1集合的遍历 16

5.3.2List、Stack及Queue类 18

5.3.3Dictionary及Hashtable类 21

5.3.4其他集合类 25

5.4 排序与查找 26

5.4.1IComparable接口和IComparer接口 26

5.4.2使用Array类进行排序与查找 27

5.4.3集合类中的排序与查找 28

5.4.4自已编写排序程序 31

5.5Linq 34

5.5.1Linq的基本用法 34

5.5.2Linq的查询方法 36

5.6 遍试、迭代、递归 38

5.6.1遍试 38

5.6.2迭代 40

5.6.3递归 42

习题5 46

第6章 流、文件IO 6-1

6.1 流及二进制输入输出 6-1

6.1.1流 6-1

6.1.2使用流进行二进制输入输出 6-5

6.1.3使用File的二进制功能 6-7

6.1.4序列化及反序列化 6-7

6.2 文本输入输出 6-10

6.2.1使用Reader和Writer的文本I/O 6-10

6.2.2使用File的文本文件功能 6-14

6.2.3标准输入输出 6-16

6.2.4应用示例:背单词 6-16

6.3 文件、目录、注册表 6-18

6.3.1文件与目录管理 6-18

6.3.2监控文件和目录的改动 6-24

6.3.3注册表 6-27

6. 4环境参数及事件日志 6-28

6.4.1命令行参数 6-28

6.4.2获得环境参数 6-30

6.4.3使用事件日志 6-31

6. 5程序的调试、追踪与测试 6-35

6.5.1程序的调试 6-35

6.5.2程序的追踪 6-37

6.5.3程序的单元测试 6-39

习题6 6-41

第7章 Windows窗体及控件 7-1

7.1Windows窗体应用程序概述 7-1

7.1.1Windows图形用户界面 7-1

7.1.2创建Windows窗体 7-2

7.1.3添加控件 7-5

7.1.4设定布局 7-8

7.1.5事件处理 7-13

7.2 常用控件 7-17

7.2.1Control类 7-17

7.2.2标签与按钮 7-20

7.2.3文本框 7-24

7.2.4列表框、UpDown控件 7-27

7.2.5滚动条、进度条 7-33

7.2.6定时器、时间、日历类 7-34

7.2.7图片框 7-36

7.2.8其他几个控件 7-37

7.3 一些容器类控件 7-39

7.3.1Panel控件 7-39

7.3.2ImageList控件 7-40

7.3.3TreeView控件 7-41

7.3.4ListView控件 7-43

7.3.5TabControl控件 7-47

7.3.6使用Spliter控件 7-48

7.4 窗体及对话框 7-48

7.4.1Form类 7-48

7.4.2窗体的创建 7-50

7.4.3使用Form作对话框 7-51

7.4.4通用对话框 7-53

7.4.5显示消息框 7-55

7.5MDI窗体、菜单、工具栏 7-57

7.5.1MDI窗体 7-57

7.5.2菜单 7-57

7.5.3使用主菜单及上下文菜单 7-59

7.5.4工具栏 7-60

7.5.5状态栏 7-61

7.5.6一个综合的例子 7-62

习题7 7-74

第8章 绘图及图像 8-1

8.1 绘图基础支持类 8-1

8.1.1位置及大小 8-1

8.1.2颜色 8-4

8.1.3画笔 8-5

8.1.4刷子 8-9

8.2 绘图 8-11

8.2.1Graphics类 8-11

8.2.2获得Graphics对象 8-13

8.2.3进行绘图的一般步骤 8-14

8.2.4坐标变换 8-17

8.2.5处理重绘和无效操作 8-21

8.2.6绘图示例 8-22

8.3 字体 8-28

8.3.1Font类 8-28

8.3.2使用字体来绘制文本 8-29

8.4 图像 8-32

8.4.1与图像相关的类 8-32

8.4.2在窗体上显示图像 8-34

8.4.3窗体、图片框上的图标及图像 8-36

8.4.4图像处理 8-37

8.5 在自定义控件中使用绘图 8-42

8.5.1自定义控件 8-42

8.5.2在自定义控件中使用绘图 8-45

习题8 8-48

第9章 文本、XML及网络信息获取 9-1

9.1 文本及正则表达式 9-1

9.1.1文本命名空间 9-1

9.1.2正则表达式 9-2

9.1.3应用示例:播放歌词 9-6

9.2XML编程 9-11

9.2.1XML概念 9-11

9.2.2XML基本编程 9-13

9.2.3Linq to XML 9-18

9.3 网络信息获取 9-20

9.3.1网络信息获取 9-20

9.3.2WebRequst及WebClient 9-22

9.4 几类不同网络信息的处理 9-24

9.4.1使用正则表达式处理网络文本 9-24

9.4.2从网络上获取XML并进行处理 9-29

9.4.3从网络上获取Json并进行处理 9-30

9.4.4从网络上获取二进制信息并进行处理 9-33

习题9 9-34

第10章 多线程及异步编程 10-1

10.1线程基础 10-1

10.1.1多线程的相关概念 10-1

10.1.2线程的创建与控制 10-2

10.1.3线程的同步 10-7

10.2线程池与计时器 10-13

10.2.1线程池 10-13

10.2.2线程计时器 10-14

10.2.3窗体计时器 10-16

10.3集合与Windows程序中的线程 10-16

10.3.1集合的线程安全性 10-16

10.3.2窗体应用程序中的线程 10-18

10.4并行编程 10-22

10.4.1并行程序的相关概念 10-22

10.4.2Task 10-22

10.4.3Parallel类 10-24

10.4.4并行Linq 10-28

10.5异步编程 10-29

10.5.1async及await 10-29

10.5.2异步I/O 10-31

10.5.3其他实现异步的方法 10-33

习题10 10-36

第11章 数据库、网络、多媒体编程 11-1

11.1ADO.NET数据库编程 11-1

11.1.1ADO.NET简介 11-1

11.1.2数据集 11-2

11.1.3连接到数据源 11-5

11.1.4使用DataAdapter和DataSet 11-7

11.1.5使用Command和DataReader 11-9

11.1.6使用数据绑定控件 11-10

11.2 使用高级数据工具 11-12

11.2.1使用VisualStudio的数据工具 11-12

11.2.2使用EntityFramework 11-13

11.2.3使用Linq访问数据库 11-14

11.3网络通讯编程 11-15

11.3.1使用System.Net 11-15

11.3.2TcpClient及TcpListener 11-17

11.3.3Email编程 11-22

11.4互操作与多媒体编程 11-24

11.4.1C#、VB.NET、JScript的互操作 11-24

11.4.2使用Win32 API进行声音播放 11-26

11.4.3使用COM组件操作Office文档 11-28

11.4.4使用ActiveX控件进行多媒体播放 11-29

习题11 11-30

第12章 深入理解C#语言 12-1

12.1类型及转换 12-1

12.1.1值类型及引用类型 12-1

12.1.2值类型的转换 12-4

12.1.3引用类型转换 12-4

12.1.4装箱与拆箱 12-6

12.2变量及其传递 12-9

12.2.1字段与局部变量 12-9

12.2.2按值传递的参数 12-10

12.2.3ref参数及out参数 12-12

12.2.4params参数 12-15

12.2.5变量的返回 12-16

12.3多态与虚方法调用 12-16

12.3.1上溯造型 12-17

12.3.2虚方法调用 12-17

12.4类型与反射 12-21

12.4.1typeof及GetType 12-21

12.4.2is运算符 12-23

12.4.3反射及动态类型创建 12-24

12.5对象构造与析构 12-26

12.5.1调用本类或父类的构造方法 12-26

12.5.2构造方法的执行过程 12-28

12.5.3静态构造方法 12-31

12.5.4析构方法与垃圾回收 12-33

12.4.5显式资源管理与IDisposable 12-34

12.6运算符重载 12-36

12.6.1运算符重载的概念 12-36

12.6.2一元运算符 12-38

12.6.3二元运算符 12-39

12.6.4转换运算符 12-41

12.6.5==及!=运算符 12-42

12.7特性(Attribute) 12-43

12.7.1使用系统定义的Attribute 12-44

12.7.2自定义Attribute 12-46

12.8枚举器与迭代器 12-50

12.8.1枚举器 12-50

12.8.2迭代器 12-52

习题12 12-56

附录1 C#语言各个版本的新特性 1

附录2 C#语言相关网络资源 14

参考文献 16

c#程序设计教程 唐大仕pdf_C#程序设计教程(第2版)相关推荐

  1. c#程序设计教程 唐大仕pdf_C#程序设计教程

    内容概要 本书详细介绍C#程序设计的基本环境.概念.方法和应用.内容分为四个部分:第一部分介绍C#语言基础:数据.控制结构.数组.类.接口.结构等:第二部分深入介绍C#知识:类型转换.参数传递.虚方法 ...

  2. c#程序设计教程 唐大仕pdf_C# 添加PDF水印

    概述 一般我们在向文档添加水印时,会分为直接添加文字水印和加载图片添加图片水印两种情况.常见的,在添加文字水印时会多以声明文档版权.权威性的文字.标语或者名称等:同样的,图片水印也通常可以是某组织的L ...

  3. Java程序设计当中包的使用_【学习笔记】 唐大仕—Java程序设计 第4讲 类、包和接口之4.2 类的继承...

    [学习笔记] 唐大仕-Java程序设计 第4讲 类.包和接口之4.2 类的继承 super的使用 1.使用super访问父类的域和方法 注意:正是由于继承,使用this可以访问父类的域和方法.但是有时 ...

  4. java程序设计 第2版 唐大仕_《Java程序设计(第2版)》唐大仕 源代码

    [实例简介] <Java程序设计(第2版)>唐大仕 清华大学出版社 北方交通大学出版社 [实例截图] [核心代码] bbe30560-8619-4a35-a024-50004cc5c8e2 ...

  5. 中国大学MOOC北京大学唐大仕老师《Java程序设计》源码分享

    中国大学MOOC北京大学唐大仕老师<Java程序设计>源码分享 简介 Github地址 LearnJava中需要导入的jar 导入jar的方法 简介 这是我在学习中国大学MOOC北京大学唐 ...

  6. java程序设计唐大仕慕课答案_Java程序设计_中国大学MOOC(慕课)

    1. Java是什么样的语言? 答:Java语言是一门用途广泛的.面向对象的语言.Java语言可以编写桌面应用.手机应用及企业应用.Java简洁优雅,易于学习. 2. 没有学过编程,能学吗? 答:本课 ...

  7. 北大博士唐大仕推荐C#学习网站

    https://msdn.microsoft.com https://www.cnblogs.com (中文,强烈推荐) https://www.codeplex.com (源码,强烈推荐) http ...

  8. 东华大学java_东华大学2020秋《Java程序设计》期末大作业

    东华大学继续教育学院 2020年秋季学期 远程学历教育<Java程序设计>期末大作业 一.选择题(本大题共10小题,每小题 1分, 共10分) 1.    下列哪个不是面向对象程序设计的基 ...

  9. ASP.NET应用程序设计的10大技巧

    ASP.NET应用程序设计的10大技巧 [ ASP.NET应用程序设计的10大技巧 | 责任编辑: 51欢乐吧 - 关涛 | 2007-09-25 10:38:16 ] 调整字体大小: 大 | 中 | ...

最新文章

  1. 正式环境docker部署hyperf_Hyperf使用docker-compose集群部署
  2. [待解决]报错的脚本
  3. 1080 MOOC期终成绩 (25 分)
  4. 问题 A: 阿正的忐忑不安(C语言)
  5. geoserver发布瓦片数据_OpenLayers教程十八:多源数据加载之矢量切片
  6. Mybatis解析mapper
  7. java stringjoiner_java-为什么我们已经拥有StringBuilder时使用StringJoiner?
  8. TensorFlow神经网络(二)反向传播
  9. 批处理向FTP上传指定属性的文件 批处理增量备份的例子
  10. 如何安装Virtual Box的VBox Guest Additions扩展程序
  11. vue-cli开发Vue项目时定义环境变量需加VUE_APP前缀
  12. 用ProcessOn在线作图
  13. 监控服务器系统密码忘了,监控服务器登录密码忘记了怎么办
  14. 计算机视觉学生论文,计算机视觉方面论文参考文献
  15. 使用POI为Word文档设置阿拉伯数字形式、罗马数字形式的页脚
  16. ASO优化之教你如何得到ASO优化100关键词字符
  17. 脚手架开发(1)-准备阶段
  18. 文曲星猜数字游戏java代码_文曲星猜数字游戏6步算法(含代码)
  19. Python数据可视化,Pyecharts库,外圆环内饼图制作
  20. iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码

热门文章

  1. 微信小商店支持个人开店了,详细开店步骤奉上
  2. Fabric区块链学习
  3. 树莓派系列-5-4B配置关闭休眠、去掉滚动代码,彩虹瓶,增加开机动画
  4. 作为新手销售员 怎么发展新客户提高客户量
  5. Spark Nightly Builds
  6. 酒店管理系统/停车场管理系统(毕业设计+代码)
  7. python转换字符_Python字符转换
  8. 通熟理解urL和urI的区别
  9. 自制USB wifi信号放大天线
  10. 两个局域网的引起的头脑风暴