《C#6.0学习笔记 从第一行C#代码到第一个项目设计》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:周家安著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302437734
  • 页数:751 页
图书介绍:本书内容包括:C#语言基础,但不全讲,因为微软公司为我们提供了一套很丰富的语言规范文档,本书会顺带告知读者如何运用官方的教程来参考和学习;另外,本书与.net技术融合,从基础的类型到数组、集合、泛型,再到类型转换以及协变和逆变的运用、控制台应用程序、窗体应用程序、WPF、数据管理、文件处理、应用程序域管理、反射等技术也会一并讲解。

第1章 准备工作 1

1.1 为什么要编写程序 1

1.2 C#与.NET框架的关系 2

1.3 只需要一个工具——Visual Studio 3

1.3.1 下载和安装 3

1.3.2 认识Visual Studio 3

1.3.3 如何使用快捷键 4

1.3.4 如何放置子窗口 4

1.3.5 自动隐藏窗口 5

1.3.6 巧用快速启动 6

1.3.7 个性化设置 7

1.4 创建第一个应用程序 12

1.5 解决方案与项目的关系 15

第2章 语法基础 17

2.1 代码的基本结构 17

2.2 命名空间 18

2.2.1 为什么要使用命名空间 18

2.2.2 如何访问命名空间中的成员 19

2.2.3 引入命名空间 20

2.2.4 using static指令 20

2.3 Main入口点 21

2.3.1 程序代码真的从Main方法开始执行吗 22

2.3.2 如何选择入口点 22

2.4 变量与常量 24

2.4.1 变量 24

2.4.2 变量的生命周期 25

2.4.3 常量 25

2.5 命名规则 26

2.6 运算符 27

2.6.1 示例:简单运算 28

2.6.2 示例:自增和自减运算 28

2.6.3 示例:位运算 29

2.6.4 示例:比较运算符 31

2.7 流程控制 32

2.7.1 顺序执行 32

2.7.2 有选择地执行 32

2.7.3 循环往复 36

2.8 写注释是个好习惯 41

2.9 基本的数据类型 42

2.10 不要错过《C#语言规范》文档 45

第3章 面向对象编程 47

3.1 类 47

3.1.1 字段 48

3.1.2 属性 48

3.1.3 方法 51

3.1.4 构造函数与析构函数 53

3.2 结构 57

3.3 引用类型与值类型 59

3.4 ref参数与out参数 61

3.5 方法重载 66

3.6 静态类与静态成员 68

3.7 继承与多态 69

3.7.1 可访问性 69

3.7.2 继承 72

3.7.3 注意可访问性要一致 74

3.7.4 隐藏基类的成员 75

3.7.5 覆写基类成员 76

3.7.6 如何阻止类被继承 79

3.8 抽象类 79

3.9 接口 82

3.9.1 定义接口 83

3.9.2 接口与多继承 83

3.9.3 实现接口 84

3.9.4 显式实现接口 85

3.10 扩展方法 88

3.11 委托与事件 88

3.11.1 定义和使用委托 89

3.11.2 将方法作为参数传递 92

3.11.3 使用事件 93

3.12 枚举 98

3.12.1 使用枚举类型 98

3.12.2 如何获取枚举的值列表 101

3.12.3 如何取得枚举中各成员的名字 102

3.12.4 枚举的位运算 103

3.13 特性 106

3.13.1 自定义特性 108

3.13.2 如何把特性应用到方法的返回值 109

3.13.3 通过反射技术检索特性 110

3.14 数组 111

3.14.1 定义数组的几种方法 111

3.14.2 多维数组 113

3.14.3 嵌套数组 115

3.14.4 复制数组 118

3.14.5 反转数组 119

3.14.6 更改数组的大小 120

3.14.7 在数组中查找元素 121

3.14.8 灵活使用ArrayList类 124

第4章 控制台应用程序 126

4.1 输出文本信息 126

4.2 获取键盘输入 129

4.2.1 Read方法 129

4.2.2 ReadKey方法 129

4.2.3 ReadLine方法 130

4.3 命令行参数 131

4.4 设置控制台窗口的外观 133

4.5 控制台窗口的大小和位置 134

第5章 字符串处理与数学运算 139

5.1 对象的字符串表示形式 139

5.1.1 重写ToString方法 139

5.1.2 扩展方法 141

5.2 字符串的串联与拆分 143

5.2.1 使用+运算符串联字符串 143

5.2.2 使用Join方法拼接字符串数组 144

5.2.3 使用Concat方法创建字符串 145

5.2.4 使用StringBuilder类创建字符串 145

5.2.5 使用Split方法拆分字符串 148

5.3 转义字符 149

5.4 英文字母的大小写转换 151

5.5 Parse和TryParse方法 152

5.6 查找和修改字符串 154

5.6.1 查找索引 154

5.6.2 存在性查找 156

5.6.3 字符串的增删改 157

5.6.4 填充字符串 159

5.7 格式化字符串 160

5.7.1 IformatProvider接口 160

5.7.2 区域性相关的信息 161

5.7.3 实现字符串的格式化 162

5.8 字符串的复合格式化 169

5.9 字符串内插 171

5.10 生成随机数 172

5.11 Math类与常用的数学运算 173

5.12 与日期时间有关的计算 174

第6章 类型转换 176

6.1 隐式转换 176

6.2 显式转换 179

6.3 可以为null的值类型 180

6.4 引用类型的兼容性转换 182

6.5 类型转换帮助器 184

6.6 自定义转换 187

第7章 泛型、集合与变体 190

7.1 泛型类型 190

7.1.1 泛型与类 191

7.1.2 泛型与接口 193

7.1.3 泛型与类型成员 194

7.1.4 泛型与委托 195

7.1.5 泛型约束 198

7.2 集合 202

7.2.1 普通集合 202

7.2.2 泛型集合 205

7.2.3 字典 213

7.3 自定义排序 218

7.4 变体 223

7.4.1 协变与逆变 223

7.4.2 类型参数的输入与输出 225

7.4.3 必不可少的技巧 229

第8章 纠错与单元测试 230

8.1 实时纠正语法错误 230

8.2 代码调试 232

8.2.1 断点法 232

8.2.2 输出信息法 234

8.3 断言 236

8.4 使用日志文件 240

8.5 异常处理 244

8.6 单元测试 249

第9章 匿名方法与Lambda表达式 254

9.1 匿名方法 254

9.2 Lambda表达式 255

9.2.1 用于赋值 256

9.2.2 用于参数传递 257

第10章 集成化查询 262

10.1 LINQ基本语法 262

10.1.1 对查询结果类型的巧妙处理 263

10.1.2 延迟执行与强制立即执行 265

10.2 筛选 268

10.3 排序 269

10.4 分组 271

10.5 更复杂的查询 276

10.5.1 动态创建类型 276

10.5.2 联合查询 278

10.5.3 嵌套查询 284

第11章 Windows窗体应用程序 288

11.1 Windows窗体应用程序的基本结构 288

11.1.1 客户区域 288

11.1.2 控件 289

11.1.3 应用程序项目 289

11.1.4 Windows消息循环 291

11.1.5 演练:手动创建一个Windows应用程序 294

11.2 ApplicationContext类 297

11.3 窗体设计器 300

11.4 控件的基类——Control 304

11.4.1 示例:设置控件的位置和大小 306

11.4.2 示例:设置控件的前景色和背景色 309

11.4.3 示例:调整控件的Z顺序 311

11.5 常规控件 314

11.5.1 共享事件处理程序 314

11.5.2 制作“用户登录”窗口 316

11.5.3 CheckBox与RadioButton示例 318

11.5.4 使用ListBox控件呈现对象列表 321

11.5.5 自行绘制列表控件的项 328

11.5.6 组合框 330

11.5.7 TextBox的自动完成功能 332

11.5.8 多视图列表 334

11.5.9 图像呈现控件 341

11.5.10 实时报告进度 348

11.5.11 选择日期和时间 353

11.5.12 规范用户输入 355

11.6 容器控件 360

11.6.1 在容器内部显示滚动条 360

11.6.2 分组面板 362

11.6.3 网格布局面板 362

11.6.4 选项卡 365

11.6.5 自动排列内容的面板 369

11.7 工具栏和菜单 371

11.7.1 工具栏 371

11.7.2 菜单栏 376

11.7.3 上下文菜单 379

11.7.4 自定义承载控件 380

11.8 对话框 384

11.8.1 “打开文件”和“保存文件”对话框 384

11.8.2 字体选择对话框 389

11.8.3 颜色选择对话框 390

11.8.4 自定义对话框 391

11.9 用户控件 395

11.10 自定义控件 397

第12章 WPF应用程序 403

12.1 WPF应用程序项目的结构 403

12.2 XAML基础 407

12.2.1 XAML命名空间 407

12.2.2 代码隐藏 408

12.2.3 标记扩展 409

12.2.4 内容属性 410

12.3 依赖项属性 413

12.3.1 定义和使用依赖项属性 414

12.3.2 使用元数据 416

12.3.3 使用已注册的依赖项属性 422

12.3.4 只读依赖项属性 425

12.3.5 附加属性 427

12.4 路由事件 431

12.4.1 路由策略 434

12.4.2 注册路由事件的类处理程序 436

12.5 认识WPF控件 439

12.5.1 Control类 440

12.5.2 内容控件 444

12.5.3 输入控件 452

12.6 数据绑定与视图呈现 455

12.6.1 用于数据绑定的XAML扩展标记 455

12.6.2 使用InotifyPropertyChanged接口 462

12.6.3 上下文绑定 467

12.6.4 绑定转换器 473

12.6.5 数据集合控件 476

12.6.6 数据模板 481

12.6.7 数据视图 491

12.6.8 ObservableCollection<T>集合 503

12.7 布局 505

12.7.1 Panel类 505

12.7.2 网格布局(Grid) 507

12.7.3 栈布局(StackPanel) 511

12.7.4 停靠面板(DockPanel) 512

12.7.5 绝对定位(Canvas) 513

12.7.6 自动换行(WrapPanel) 514

12.7.7 Z顺序 515

12.8 用户控件与自定义控件 516

12.9 样式与资源 525

12.9.1 样式中的触发器 527

12.9.2 资源的有效范围 529

12.9.3 合并资源字典 531

12.9.4 静态资源与动态资源 534

12.10 图形 535

12.10.1 Shape类 535

12.10.2 基本图形 540

12.11 动画 542

12.11.1 演示图板 543

12.11.2 简单动画与关键帧动画 545

第13章 异步编程 549

13.1 为什么要使用异步编程 549

13.2 使用Thread类进行异步编程 552

13.3 线程锁 554

13.4 通过委托执行异步操作 558

13.5 并行任务 560

13.5.1 启动简单的并行任务 560

13.5.2 Task与Task<TResult>类 565

13.5.3 创建可取消的Task 567

13.6 async和await关键字 570

13.7 ThreadLocal<T> 575

13.8 AsyncLocal<T> 577

第14章 系统信息管理 579

14.1 管理进程 579

14.1.1 管理正在运行的进程 579

14.1.2 启动新进程 583

14.1.3 重定向输入/输出流 585

14.2 管理服务 587

14.3 WMI查询 594

14.4 读取系统参数 599

14.4.1 ComputerInfo类 599

14.4.2 Environment类 600

14.4.3 SystemInformation类 601

14.4.4 用于WPF的系统信息类 603

14.5 写入事件日志 604

第15章 文件与流 607

15.1 创建和删除目录 607

15.2 创建和删除文件 609

15.3 流 610

15.3.1 读写文件 611

15.3.2 内存流 616

15.4 内存映射文件 619

15.5 监控文件系统的变化 623

15.6 独立存储 625

15.7 压缩与解压缩 628

第16章 序列化与反序列化 633

16.1 二进制序列化 633

16.2 XML序列化 636

16.2.1 简单实现XML序列化和反序列化 637

16.2.2 自定义XML文档的节点 639

16.3 SOAP序列化 642

16.4 数据协定 644

16.5 JSON序列化 648

第17章 访问数据库 651

17.1 SQLLocalDB与SSDT 651

17.1.1 创建和删除数据服务实例 652

17.1.2 在Visual Studio中连接和创建数据库 654

17.1.3 编写SQL语句 657

17.2 示例数据库 658

17.3 连接数据库 659

17.4 ADO.NET基础 663

17.4.1 使用DataReader来读取数据 663

17.4.2 使用DataAdapter填充数据 665

17.4.3 使用数据适配器更新数据库 666

17.4.4 参数化查询 670

17.5 LinQ to ADO.NET 673

17.6 LinQ to SQL 676

17.6.1 用DataContext直接执行SQL语句 683

17.6.2 动态创建数据库 684

第18章 程序集与反射 691

18.1 类库 691

18.2 反射技术基础 696

18.2.1 动态加载程序集 696

18.2.2 获取类型信息 698

18.2.3 动态创建类型实例 700

18.2.4 动态调用类型成员 703

第19章 网络编程 708

19.1 Socket编程 708

19.1.1 Socket类 709

19.1.2 TcpListener类与TcpClient类 713

19.1.3 UdpClient类 715

19.2 HTTP通信 718

19.2.1 HttpWebRequest类与HttpWebResponse类 719

19.2.2 WebClient类 720

19.2.3 HttpClient类 722

19.3 获取网络接口信息 726

19.4 向目标计算机发送Ping命令 727

19.5 用SMTP发送电子邮件 728

19.6 访问Web服务 730

第20章 互操作性 734

20.1 调用Win32 API函数 734

20.2 调用COM组件 738

第21章 综合实例 740

21.1 综合实例1:照片面积计算器 740

21.1.1 数据模型准备 741

21.1.2 让用户选择照片文件 745

21.1.3 计算所选照片的总面积 746

21.1.4 语音朗读计算结果 747

21.1.5 实现日志文件的写入 747

21.2 综合实例2:文件加密与解密工具 747

21.2.1 密码的处理 748

21.2.2 提取Key和IV 749

21.2.3 实现加密与解密 749