《C#程序设计教程 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:唐大仕编著
  • 出 版 社:北京交通大学出版社
  • 出版年份:2018
  • ISBN:9787512133969
  • 页数:571 页
图书介绍:本书详细介绍了C#程序设计的基本环境、概念、方法和应用。内容分为C#语言及C#应用两方面:C#语言方面,包括C#基础语法、面向对象的C#语言、C#语言高级特性等; C#应用方面,包括工具类、集合、常用算法、流式文件、文本应用、Windows窗体和控件、图形用户界面、多线程、ADO.NET数据库应用、网络通讯编程等。书中也详细讲解了C#一些新特新如Lambda表达式、Linq、异步编程以及深入理解C#语言。

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

1.1 C#言及其环境 1

1.1.1 C#的产生与发展 1

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

1.1.3 C#的特点 5

1.1.4 C#和C、C+++的比较 6

1.1.5 C#与Java的比较 8

1.2 简单的C#程序 8

1.2.1 HelloWorld 9

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

1.2.3 对象的三个基本要素 16

1.2.4 C#程序的基本构成 17

1.3 程序中的输入输出及运算 20

1.3.1 控制台应用程序的输入输出 20

1.3.2 Windows应用程序输入输出 22

1.3.3 常用的运算 23

1.4 开发工具 24

1.4.1.NET Framework SDK及Visual Studio 24

1.4.2 使用命令行编译及运行程序 24

1.4.3 辅助工具EditPlus 27

1.4.4 辅助工具Visual Studio Code 29

1.5 应用程序类型 30

1.5.1 Visual Studio建立不同类型的应用程序 30

1.5.2 WPF应用程序 31

1.5.3 Web应用程序 32

1.6 面向对象程序设计的基本概念 33

1.6.1 面向对象概述 33

1.6.2 对象、类与实体 34

1.6.3 封装、继承、多态 36

1.6.4 面向对象的软件开发过程 37

习题1 38

第2章 C#语言基础 40

2.1 数据类型、变量与常量 40

2.1.1 数据类型 40

2.1.2 标识符和关键字 42

2.1.3 字面常量 44

2.1.4 变量 45

2.1.5 C#编码惯例与注释 46

2.2 运算符与表达式 50

2.2.1 算术运算符 50

2.2.2 关系运算符 52

2.2.3 逻辑运算符 52

2.2.4 位运算符 53

2.2.5 赋值与强制类型转换 54

2.2.6 条件运算符 55

2.2.7 运算的优先级、结合性 55

2.3 流程控制语句 56

2.3.1 结构化程序设计的三种基本流程 56

2.3.2 简单语句 57

2.3.3 分支语句 57

2.3.4 循环语句 61

2.3.5 跳转语句 66

2.4 数组 68

2.4.1 数组的声明 68

2.4.2 数组的初始化 70

2.4.3 数组元素的使用 71

2.4.4 数组与System.Array 72

2.4.5 使用foreach语句访问数组 73

2.4.6 数组应用举例 74

习题2 76

第3章 类、接口与结构 79

3.1 类、字段、方法 79

3.1.1 定义类中的字段和方法 79

3.1.2 构造方法与析构方法 80

3.1.3 对象的创建与使用 82

3.1.4 方法的重载 83

3.1.5 使用this 85

3.2 属性、索引器 86

3.2.1 属性 86

3.2.2 索引器 91

3.3 类的继承 95

3.3.1 派生子类 95

3.3.2 字段的继承、添加与隐藏 96

3.3.3 方法的继承、添加与覆盖 97

3.3.4 使用base 99

3.3.5 父类与子类的转换以及as运算符 100

3.3.6 属性、索引器的继承 102

3.4 修饰符 102

3.4.1 访问控制符 102

3.4.2 static 108

3.4.3 const及readonly 110

3.4.4 sealed及abstract 112

3.4.5 new、virtual、override 113

3.4.6 一个应用模型——单例 117

3.5 接口 118

3.5.1 接口的概念 118

3.5.2 定义接口 119

3.5.3 实现接口 120

3.5.4 对接口的引用 122

3.5.5 显式接口成员实现 123

3.6 结构、枚举 125

3.6.1 结构 125

3.6.2 枚举 127

习题3 129

第4章 C#高级特性 132

4.1 泛型 132

4.1.1 泛型的基本使用 132

4.1.2 自定义泛型 133

4.2 委托及Lambda表达式 137

4.2.1 委托类型与赋值 137

4.2.2 Lambda表达式 145

4.2.3 使用系统定义的Action及Func 146

4.3 事件 147

4.3.1 事件的应用 147

4.3.2 自定义事件 148

4.3.3 事件的语法细节 151

4.4 异常处理 152

4.4.1 异常的概念 152

4.4.2 捕获和处理异常 154

4.4.3 创建用户自定义异常类 158

4.4.4 重抛异常及异常链接 159

4.4.5 算术溢出与checked 161

4.5 命名空间、嵌套类型、程序集 162

4.5.1 命名空间 163

4.5.2 嵌套类型 166

4.5.3 程序集 170

4.6 C#语言中的其他成分 174

4.6.1 运算符重载 175

4.6.2 使用Attribute 175

4.6.3 编译预处理 176

4.6.4 unsafe及指针 178

4.6.5 C#几个语法的小结 180

习题4 181

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

5.1 C#语言基础类 183

5.1.1.NET Framework基础类库 183

5.1.2 Object类 184

5.1.3 简单数据类型及转换 188

5.1.4 Math类及Random类 190

5.1.5 DateTime类及TimeSpan类 191

5.1.6 Console类 194

5.2 字符串 194

5.2.1 String类 194

5.2.2 StringBuilder类 196

5.2.3 数据的格式化 198

5.3 集合类 199

5.3.1 集合的遍历 199

5.3.2 List、Stack及Queue类 201

5.3.3 Dictionary及Hashtable类 204

5.3.4 其他集合类 208

5.4 排序与查找 209

5.4.1 IComparable接口和IComparer接口 209

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

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

5.4.4 自己编写排序程序 214

5.5 Linq 217

5.5.1 Linq的基本用法 217

5.5.2 Linq的查询方法 219

5.6 遍试、迭代、递归 222

5.6.1 遍试 222

5.6.2 迭代 223

5.6.3 递归 225

习题5 229

第6章 流、文件IO 233

6.1 流及二进制输入/输出 233

6.1.1 流 233

6.1.2 使用流进行二进制输入/输出 237

6.1.3 使用File的二进制功能 239

6.1.4 序列化及反序列化 240

6.2 文本输入/输出 242

6.2.1 使用Reader和Writer的文本I/O 243

6.2.2 使用File的文本文件功能 247

6.2.3 标准输入/输出 249

6.2.4 应用示例:背单词 249

6.3 文件、目录、注册表 251

6.3.1 文件与目录管理 251

6.3.2 监控文件和目录的改动 256

6.3.3 注册表 259

6.4 环境参数及事件日志 261

6.4.1 命令行参数 261

6.4.2 获得环境参数 263

6.4.3 使用事件日志 264

6.5 程序的调试、追踪与测试 267

6.5.1 程序的调试 267

6.5.2 程序的追踪 269

6.5.3 程序的单元测试 272

习题6 273

第7章 Windows窗体及控件 275

7.1 Windows窗体应用程序概述 275

7.1.1 Windows图形用户界面 275

7.1.2 创建Windows窗体 276

7.1.3 添加控件 279

7.1.4 设定布局 282

7.1.5 事件处理 286

7.2 常用控件 290

7.2.1 Control类 290

7.2.2 标签与按钮 292

7.2.3 文本框 296

7.2.4 列表框、UpDown控件 300

7.2.5 滚动条、进度条 304

7.2.6 定时器、时间、日历类 306

7.2.7 图片框 308

7.2.8 其他几个控件 309

7.3 一些容器类控件 310

7.3.1 Panel控件 310

7.3.2 ImageList控件 311

7.3.3 TreeView控件 312

7.3.4 ListView控件 314

7.3.5 TabControl控件 318

7.3.6 使用Spliter控件 318

7.4 窗体及对话框 319

7.4.1 Form类 319

7.4.2 窗体的创建 321

7.4.3 使用Form作对话框 322

7.4.4 通用对话框 324

7.4.5 显示消息框 326

7.5 MDI窗体、菜单、工具栏 327

7.5.1 MDI窗体 327

7.5.2 菜单 328

7.5.3 使用主菜单及上下文菜单 329

7.5.4 工具栏 330

7.5.5 状态栏 331

7.5.6 一个综合的例子 332

习题7 336

第8章 绘图及图像 339

8.1 绘图基础支持类 339

8.1.1 位置及大小 339

8.1.2 颜色 342

8.1.3 画笔 344

8.1.4 刷子 347

8.2 绘图 350

8.2.1 Graphics类 350

8.2.2 获得Graphics对象 352

8.2.3 进行绘图的一般步骤 353

8.2.4 坐标变换 355

8.2.5 处理重绘和无效操作 358

8.2.6 绘图示例 359

8.3 字体 366

8.3.1 Font类 366

8.3.2 使用字体来绘制文本 367

8.4 图像 370

8.4.1 与图像相关的类 370

8.4.2 在窗体上显示图像 372

8.4.3 窗体、图片框上的图标及图像 374

8.4.4 图像处理 375

8.5 在自定义控件中使用绘图 381

8.5.1 自定义控件 381

8.5.2 在自定义控件中绘图 384

习题8 387

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

9.1 文本及正则表达式 388

9.1.1 文本命名空间 388

9.1.2 正则表达式 389

9.1.3 应用示例:播放歌词 394

9.2 XML编程 398

9.2.1 XML概念 399

9.2.2 XML基本编程 401

9.2.3 Linq to XML 406

9.3 网络信息获取及编程 408

9.3.1 网络信息获取 408

9.3.2 WebRequst及WebClient 410

9.4 几类不同网络信息的处理 412

9.4.1 使用正则表达式处理网络文本 412

9.4.2 从网络上获取XML并进行处理 417

9.4.3 从网络上获取Json并进行处理 418

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

习题9 422

第10章 多线程及异步编程 424

10.1 线程基础 424

10.1.1 多线程的相关概念 424

10.1.2 线程的创建与控制 425

10.1.3 线程的同步 430

10.2 线程池与计时器 435

10.2.1 线程池 435

10.2.2 线程计时器 437

10.2.3 窗体计时器 438

10.3 集合与Windows程序中的线程 438

10.3.1 集合的线程安全性 438

10.3.2 窗体应用程序中的线程 440

10.4 并行编程 445

10.4.1 并行程序的相关概念 445

10.4.2 并行Linq 451

10.5 异步编程 453

10.5.1 async及await 453

10.5.2 异步I/O 455

10.5.3 其他实现异步的方法 458

习题10 460

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

11.1 ADO.NET数据库编程 462

11.1.1 ADO.NET简介 462

11.1.2 数据集 465

11.1.3 连接到数据源 468

11.1.4 使用DataAdapter和DataSet 469

11.1.5 使用Command和DataReader 471

11.1.6 使用数据绑定控件 472

11.2 使用高级数据工具 475

11.2.1 使用Visual Studio的数据工具 475

11.2.2 使用Entity Framework 475

11.2.3 使用Linq访问数据库 476

11.3 网络通信编程 477

11.3.1 使用System.Net 478

11.3.2 TcpClient及TcpListener 478

11.3.3 E-mail编程 484

11.4 互操作与多媒体编程 485

11.4.1 C#、VB.NET、JScript的互操作 485

11.4.2 使用Win32 API进行声音播放 487

11.4.3 使用COM组件操作Office文档 488

11.4.4 使用ActiveX控件进行多媒体播放 490

习题11 491

第12章 深入理解C#语言 493

12.1 类型及转换 493

12.1.1 值类型及引用类型 493

12.1.2 值类型的转换 496

12.1.3 引用类型转换 497

12.1.4 装箱与拆箱 499

12.2 变量及其传递 502

12.2.1 字段与局部变量 502

12.2.2 按值传递的参数 503

12.2.3 ref参数及out参数 505

12.2.4 params参数 509

12.2.5 变量的返回 510

12.3 多态与虚方法调用 511

12.3.1 上溯造型 511

12.3.2 虚方法调用 512

12.4 类型与反射 516

12.4.1 typeof及GetType 516

12.4.2 is运算符 519

12.4.3 反射及动态类型创建 520

12.5 对象构造与析构 521

12.5.1 调用本类或父类的构造方法 521

12.5.2 构造方法的执行过程 524

12.5.3 静态构造方法 526

12.5.4 析构方法与垃圾回收 528

12.5.5 显式资源管理与IDisposable 529

12.6 运算符重载 531

12.6.1 运算符重载的概念 532

12.6.2 一元运算符 533

12.6.3 二元运算符 535

12.6.4 转换运算符 536

12.6.5 ==及!=运算符 538

12.7 特性 539

12.7.1 使用系统定义的Attribute 540

12.7.2 自定义Attribute 542

12.8 枚举器与迭代器 546

12.8.1 枚举器 546

12.8.2 迭代器 549

习题12 553

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

附录B C#语言相关网络资源 569

参考文献 571