图书介绍

C#2.0宝典pdf电子书版本下载

C#2.0宝典
  • 张立编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121036312
  • 出版时间:2007
  • 标注页数:905页
  • 文件大小:121MB
  • 文件页数:925页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

C#2.0宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 C#入门 1

1.1.1 .NET Framework 2.0介绍 2

1.1 .NET Framework 2.0与C 2

第1章 C#简介 2

1.1.2 .NET Framework 2.0新增功能 3

1.1.3 Common Language Runtime 4

1.1.5 C# 2.0新增功能 6

1.1.4 C# 2.0介绍 6

1.2.1 .NET开发环境Visual Studio 7

1.2 Visual Studio 2005概述 7

1.2.2 Visual Studio 2005安装 8

1.2.3 MSDN安装 10

1.3.1 Visual Studio 2005概览 12

1.3 Visual Studio 2005开发环境 12

1.3.2 菜单栏 14

1.3.4 工具箱面板 15

1.3.3 工具栏 15

1.3.5 “属性”面板 16

1.3.8 代码编辑器 17

1.3.7 “对象浏览器”面板 17

1.3.6 “类视图”面板 17

1.4.2 目录浏览 19

1.4.1 进入MSDN 19

1.3.9 “错误列表”面板 19

1.3.10 “输出”面板 19

1.4 MSDN简介 19

1.4.3 索引快速访问 20

1.4.4 搜索MSDN文档库 21

1.5.1 命名空间简介 22

1.5 命名空间 22

1.5.2 using语句 23

1.6.1 C#中的Hello World! 24

1.6 创建第一个C#项目 24

1.5.3 命名空间的别名 24

1.7.1 窗体应用程序Hello World! 26

1.7 创建Windows窗体应用程序 26

1.6.2 实例改进 26

1.7.2 实例改进 28

1.8.1 集成开发环境软件——SharpDevelop 30

1.8 其他常用工具 30

1.8.2 轻量级的开发工具——Snippet Compiler 31

1.8.3 通用编辑器——UltraEdit 32

1.8.4 反编译软件——.NET Reflector 34

1.8.5 NUnit 36

1.8.6 代码生成工具——CodeSmith 37

1.8.7 代码标准检测工具——FxCop 39

1.8.8 其他工具 40

1.9 小结 41

2.1.1 语句的基本概念与分类 42

2.1 语句 42

第2章 C#基础元素 42

2.1.3 编程风格的通用约定 43

2.1.2 编译器对C#语句的处理 43

2.1.5 编程风格建议 44

2.1.4 代码块 44

2.2.2 标识符的大小写 47

2.2.1 标识符简介及命名 47

2.2 标识符 47

2.2.3 中文标识符 48

2.3.2 关键字的显示方式 49

2.3.1 关键字列表 49

2.3 关键字 49

2.3.3 其他语言关键字 50

2.3.4 使用关键字做标识符 52

2.4.1 变量的声明 53

2.4 变量 53

2.4.3 对变量进行赋值 54

2.4.2 变量的命名规范 54

2.4.5 类型之间的转换 55

2.4.4 变量的类型 55

2.4.6 全局变量解决方法 57

2.4.7 调试程序:如何查看变量内容 58

2.5.1 二元运算符 61

2.5 运算符 61

2.5.2 一元运算符 62

2.5.4 溢出检测 63

2.5.3 简化运算符列表 63

2.5.5 类型检测 65

2.5.6 容量检测 66

2.5.9 运算符的优先级 67

2.5.8 运算符列表 67

2.5.7 三元运算符 67

2.6.1 数学表达式 68

2.6 表达式 68

2.6.2 数学运算实例 69

2.6.3 调试程序:计算表达式 70

2.6.4 数学求解实例 72

2.7 小结 74

3.1.2 逻辑与运算符:“&” 76

3.1.1 逻辑变量 76

第3章 布尔逻辑与分支语句 76

3.1 布尔逻辑 76

3.1.3 逻辑或运算符:“|” 78

3.1.4 逻辑异或运算符:“^” 79

3.1.5 逻辑非运算符:“!” 81

3.1.6 条件逻辑与运算符:“&&” 82

3.1.7 条件逻辑或运算符:“‖” 84

3.1.8 常用比较运算符 85

3.1.9 逻辑运算符的优先级 86

3.2.1 if条件转移 87

3.2 if语句 87

3.2.2 if…else语句 88

3.2.3 嵌套if语句 90

3.2.4 if与else的匹配 92

3.2.5 调试程序:单步调试 94

3.3.1 switch条件转移 95

3.3 switch语句 95

3.3.2 使用switch进行成绩查询 96

3.3.3 case条件判断 98

3.3.4 实例:星期提示程序 99

3.4.1 非三元运算符条件判断 101

3.4 三元运算符 101

3.4.2 使用三元运算符简化程序 102

3.5 goto语句 104

3.6 小结 106

4.1.1 循环条件 107

4.1 for循环 107

第4章 循环 107

4.1.3 逆向步进 108

4.1.2 增加步进幅度 108

4.1.4 注意事项 110

4.1.6 使用for循环遍历数组 111

4.1.5 使用for循环 111

4.1.7 使用for循环对数组进行排序 112

4.2.1 while循环简介 114

4.2 while循环 114

4.1.8 调试程序:跳出循环 114

4.2.2 while循环的中断与继续 115

4.2.3 使用while循环实现简单人机交互 116

4.3.2 与while循环的比较 118

4.3.1 do循环简介 118

4.3 do循环 118

4.3.3 使用do循环实现简单密码验证 119

4.4 中止循环 121

4.5 小结 122

5.1.1 方法的引入 123

5.1 方法的定义 123

第5章 方法 123

5.1.2 方法的构成 124

5.1.3 方法的调用 125

5.1.4 方法的返回值 126

5.1.5 方法的参数 128

5.1.6 方法的注释 129

5.1.7 ref关键字 132

5.1.8 out关键字 133

5.2.1 方法中变量的作用域 135

5.2 作用域 135

5.2.2 其他代码结构中变量的作用域 137

5.3.1 参数类型重载的方法 140

5.3 方法的重载 140

5.3.2 参数引用重载的方法 142

5.3.3 参数个数重载的方法 143

5.4.1 Main方法 144

5.4 特殊方法 144

5.4.2 Main方法的参数 146

5.4.3 Main方法的注意事项 148

5.5 小结 149

6.1.2 异常类的常用属性 150

6.1.1 什么是异常 150

第6章 错误及异常处理 150

6.1 异常简介 150

6.1.3 C#中常见异常类 151

6.2.1 try…catch语句 153

6.2 捕获异常 153

6.1.4 自定义异常 153

6.2.2 异常类型变量的使用 155

6.2.3 抛出异常 157

6.2.4 finally的使用 158

6.2.5 使用Visual C# 2005的异常提示对话框 160

6.3.1 默认的异常提示 161

6.3 异常处理 161

6.3.2 创建异常抛出窗体 162

6.3.3 创建异常显示窗体 163

6.3.4 实例运行情况 166

6.4 小结 168

第2部分 C#高级内容 169

7.1.1 面向对象编程基础 170

7.1 面向对象编程技术 170

第7章 类与对象 170

7.1.3 类的形式化描述 171

7.1.2 对象和类 171

7.2.2 类的构造 173

7.2.1 定义类 173

7.2 类 173

7.2.3 类的析构 176

7.2.4 定义字段 178

7.2.5 定义属性 180

7.2.6 定义方法 183

7.2.7 常见命名规则 186

7.2.8 访问控制 187

7.2.9 类的继承 192

7.2.10 继承关系中的构造和析构 196

7.2.11 this关键字 199

7.3.1 在Visual Studio 2005中创建类 200

7.3 Visual Studio 2005成员向导 200

7.3.2 添加类成员 204

7.4 小结 207

8.1.1 什么是枚举 208

8.1 枚举 208

第8章 枚举与结构 208

8.1.3 枚举的使用 209

8.1.2 枚举的定义 209

8.1.4 实例:用枚举表示一周 210

8.2.1 结构的变量 212

8.2 结构 212

8.2.2 结构的初始化 213

8.2.3 结构的方法 215

8.2.4 结构的使用 217

8.2.5 类与结构的区别 218

8.3 小结 221

9.1.1 什么是数组 222

9.1 数组 222

第9章 数组与集合 222

9.1.3 数组的索引 223

9.1.2 数组的定义 223

9.1.4 数组的遍历 226

9.1.5 数组元素的清空 227

9.1.6 数组的查找 229

9.1.7 数组的排序 231

9.1.8 数组的使用 233

9.2.1 什么是集合 234

9.2 集合 234

9.3.1 ArrayList的构造 236

9.3 ArrayList 236

9.2.2 为什么使用集合 236

9.3.2 ArrayList元素的添加 237

9.3.3 ArrayList元素的删除 241

9.3.4 ArrayList元素的获取 244

9.3.5 ArrayList的遍历 245

9.3.6 ArrayList向Array的转换 246

9.3.7 缩减ArrayList的容量 248

9.4.1 HashTable的构造 249

9.4 HashTable 249

9.4.2 HashTable元素的特点 250

9.4.3 HashTable元素的操作 251

9.5.1 什么是Queue 256

9.5.2 Queue的构造 256

9.4.4 HashTable的优点 256

9.5 Queue 256

9.5.3 Queue的相关属性 257

9.5.4 Queue的操作 258

9.5.5 Queue与其他集合的区别 260

9.6.2 定义Stack 262

9.6.1 什么是Stack 262

9.6 Stack 262

9.6.3 Stack元素的操作 263

9.6.4 Stack元素的获取规则 266

9.7.2 SortedList元素的操作 267

9.7.1 什么是SortedList 267

9.7 SortedList 267

9.8.1 Dictionary类简介 270

9.8 Dictionary 270

9.7.3 何时使用SortedList 270

9.8.2 更改Dictionary类中的条目 271

9.8.3 更改条目的值 273

9.8.4 查找条目 274

9.8.5 遍历Dictionary 275

9.9 小结 276

10.1.1 接口的定义 277

10.1 接口 277

第10章 面向对象技术进阶 277

10.1.2 接口的继承与实现 279

10.1.3 接口与多重继承 282

10.1.4 使用接口作为参数 287

10.1.5 使用接口作为返回值 289

10.1.6 名称冲突 292

10.2.1 抽象类的定义 295

10.2 抽象类与抽象方法 295

10.2.2 抽象方法 296

10.2.3 抽象类的使用 299

10.3.1 密封类 302

10.3 密封类与密封方法 302

10.3.2 密封方法 303

10.4.1 is运算符 305

10.4 高级转换 305

10.4.2 强制转换 307

10.4.3 as运算符 309

10.5 virtual和override关键字 310

10.6 static关键字 311

10.7 小结 313

11.1.1 字段的可访问性 314

11.1 字段 314

第11章 字段与属性 314

11.1.2 常量字段 315

11.2.1 只读属性 316

11.2 属性 316

11.2.2 只写属性 318

11.2.4 属性中的代码 320

11.2.3 属性的默认值 320

11.3 小结 324

12.1.2 创建迭代器 325

12.1.1 什么是迭代器 325

第12章 迭代器和分部类 325

12.1 迭代器 325

12.1.3 foreach语句 331

12.2.1 什么是分部类 333

12.2 分部类 333

12.2.2 定义分部类 334

12.2.3 分部类的注意事项 338

12.3 小结 343

13.1.2 索引器的目的 344

13.1.1 什么是索引器 344

第13章 索引器 344

13.1 索引器 344

13.1.4 使用索引器 346

13.1.3 定义索引器 346

13.1.6 索引器与属性的比较 352

13.1.5 只读索引器 352

13.2.1 结构中的索引器 353

13.2 其他结构中的索引器 353

13.2.2 接口中的索引器 355

13.3 小结 357

14.1.1 泛型问题简述 358

14.1 泛型简介 358

第14章 泛型 358

14.1.2 泛型概述 359

14.1.3 泛型的优点 362

14.1.4 泛型实例:让程序说多种语言 364

14.2.1 应用泛型 367

14.2 泛型使用 367

14.2.2 泛型的限制 369

14.2.3 泛型接口 371

14.2.4 泛型方法 372

14.2.5 类的重载 373

14.2.6 泛型类的继承 374

14.3.1 .NET典型泛型类:List〈T〉 378

14.3 .NET中泛型的应用 378

14.3.2 泛型结构 380

14.4 小结 381

15.1.1 C#中的委托 382

15.1 委托 382

第15章 委托和事件 382

15.1.3 委托示例 383

15.1.2 委托与接口 383

15.1.4 多路委托 388

15.2.1 事件简介 390

15.2 事件 390

15.2.2 事件示例 392

15.3 小结 398

15.2.3 GUI事件 398

16.1 运算符的限制 399

第16章 运算符重载 399

16.2.2 运算规则 402

16.2.1 背景介绍 402

16.2 运算符重载 402

16.2.4 主体程序代码 404

16.2.3 运算符重载语法 404

16.2.5 定义操作数 405

16.2.6 相关属性实现 407

16.2.7 相关方法 410

16.2.8 一元运算符“-”重载 414

16.2.9 二元运算符重载:相等“==”和不等“!=” 415

16.2.10 二元运算符重载:加法“+” 416

16.2.11 二元运算符重载:减法“-” 417

16.2.12 二元运算符重载:乘法“×” 419

16.2.13 其他实现 421

16.3 小结 423

16.2.14 可重载运算符 423

第3部分 Windows窗体应用程序开发 425

17.1.1 认识窗体设计器 426

17.1 窗体设计器 426

第17章 Windows窗体应用程序 426

17.1.2 使用窗体设计器 427

17.2.1 工具箱面板 431

17.2 其他窗体 431

17.2.2 属性面板 435

17.2.3 “服务器资源管理器”面板 442

17.3.1 添加控件 445

17.3 常用控件 445

17.3.4 按钮控件Button 446

17.3.3 处理控件事件 446

17.3.2 修改控件属性 446

17.3.5 标签控件Label 449

17.3.6 文本框控件TextBox 450

17.3.7 单选按钮控件RadioButton 454

17.3.8 复选框控件CheckBox 458

17.3.9 分组框控件GroupBox 462

17.3.10 面板控件Panel 465

17.3.12 列表框控件ListBox 466

17.3.11 链接标签控件LinkLabel 466

17.3.13 可选列表框控件CheckedListBox 469

17.3.14 组合框控件ComboBox 472

17.3.15 微调按钮控件NumericUpDown 475

17.4.2 控件顺序和层次 477

17.4.1 对齐控件 477

17.4 控件格式 477

17.4.5 锁定控件 478

17.4.4 控件的间距 478

17.4.3 控件的大小 478

17.5.1 自定义控件介绍 479

17.5 自定义控件 479

17.5.2 创建自定义控件 480

17.6 小结 484

18.1.1 添加主菜单 485

18.1 主菜单 485

第18章 菜单与工具栏设计 485

18.1.2 修改主菜单属性 486

18.1.3 处理主菜单事件 487

18.1.4 添加子菜单 488

18.1.5 添加分割线 489

18.2.1 添加工具栏 490

18.2 工具栏 490

18.2.2 工具栏事件处理程序 491

18.3.1 添加弹出菜单 492

18.3 上下文菜单 492

18.3.2 处理弹出菜单事件 493

18.4.2 处理状态栏显示 494

18.4.1 添加状态栏 494

18.4 状态栏 494

18.5 小结 499

19.1.1 基于对话框的应用程序 500

19.1 SDI和MDI应用程序 500

第19章 Windows窗体应用程序进阶 500

19.1.2 SDI应用程序 501

19.1.3 MDI应用程序 503

19.2.1 打开文件对话框OpenFileDialog 510

19.2 使用对话框 510

19.2.2 保存文件对话框SaveFileDialog 515

19.2.3 打印对话框 521

19.2.4 字体设置对话框FontDialog 522

19.2.7 自定义对话框 524

19.2.6 对话框的模式 524

19.2.5 颜色设置对话框ColorDialog 524

19.3.2 Graphics类 527

19.3.1 GDI+概述 527

19.3 GDI+简介 527

19.3.3 画笔Pen类 528

19.3.4 字体Font类 530

19.3.5 位图Bitmap类 532

19.3.6 实例扩展 533

19.4.1 MonthCalendar控件 534

19.4 高级控件 534

19.4.2 DateTimePicker控件 536

19.4.3 TreeView控件 539

19.4.4 TabControl控件 544

19.5.1 Windows Media Player 548

19.5 Windows媒体播放器 548

19.5.2 为程序添加多媒体播放功能 549

19.6 小结 551

第4部分 数据库应用 553

20.1.1 数据库简介 554

20.1 数据库基本知识 554

第20章 数据访问技术 554

20.1.3 SQL语言简介 555

20.1.2 数据库分类 555

20.1.5 SQL Server 2005 Express数据库简介 556

20.1.4 Access数据库简介 556

20.1.6 其他数据库简介 562

20.2.1 数据定义 564

20.2 SQL语言介绍 564

20.2.2 数据查询 567

20.2.3 数据更新 575

20.2.4 数据控制 576

20.2.5 常用函数 577

20.3.1 ADO.NET简介 578

20.3 ADO.NET 578

20.3.2 ADO.NET类介绍 579

20.3.3 ADO.NET中的XML 582

20.3.4 ADO.NET中的SQL 583

20.3.5 DataReader类简介 584

20.3.7 注意事项 585

20.3.6 DataSet类简介 585

20.4.3 MySQL 586

20.4.2 SQL Server 586

20.4 ADO.NET与各种数据库的连接 586

20.4.1 Access 586

20.5 小结 587

20.4.5 其他数据库 587

20.4.4 Oracle 587

21.1.1 定义数据源 588

21.1 窗体控件的数据绑定 588

第21章 Windows窗体应用程序与数据库应用 588

21.1.2 使用DataSet 591

21.1.3 添加数据绑定控件 592

21.2 应用程序实例 593

21.1.4 绑定数据 593

21.3 小结 595

第5部分 Web应用 597

22.1.1 HTML的由来 598

22.1 HTML简介 598

第22章 Web应用基础 598

22.1.2 页面介绍 599

22.1.3 格式设置 601

22.1.4 文本标记 603

22.1.5 图像 605

22.1.6 表格 606

22.1.7 链接 608

22.1.8 框架 611

22.1.9 表单 613

22.3 第一个ASP.NET程序 616

22.2.2 其他动态页面技术 616

22.2 ASP.NET简介 616

22.2.1 静态页面与动态页面 616

22.4.1 Label控件 618

22.4 常用控件介绍 618

22.4.2 TextBox控件 619

22.4.3 Button控件 620

22.4.4 DropDownList控件 621

22.4.5 ListBox控件 622

22.4.6 CheckBox控件和CheckBoxList控件 623

22.4.7 RadioButton控件和RadioButtonList控件 625

22.4.8 Image控件 628

22.4.9 Table控件 629

22.4.10 Calendar控件 630

22.5 ASP.NET服务端支持 631

22.6 小结 633

23.1.1 什么是校验 634

23.1 校验简介 634

第23章 数据校验 634

23.2 验证控件 635

23.1.2 客户端校验和服务端校验 635

23.2.1 必需字段验证 636

23.2.2 比较验证 640

23.2.3 范围验证 645

23.2.4 正则表达式验证 649

23.2.5 自定义验证 653

23.2.6 验证总结 658

23.3 小结 660

24.1.1 System.IO类介绍 661

24.1 文件 661

第24章 输入与输出 661

24.1.3 文件夹类Directory 663

24.1.2 文件类File 663

24.1.4 文件信息类FileInfo 664

24.1.5 文件夹信息类DirectoryInfo 665

24.2.2 文件流类FileStream 667

24.2.1 流操作类介绍 667

24.1.6 文件信息类与文件夹信息类的用法 667

24.2 流 667

24.2.3 流写入类StreamWriter 671

24.2.4 流读取类StreamReader 673

24.2.5 二进制流写入类BinaryWriter 674

24.2.6 二进制流读取类BinaryReader 675

24.3 高级实例 676

24.3.1 窗体布局 677

24.3.2 代码实现 679

24.3.3 实例进阶 683

24.4 小结 684

25.1.1 Windows Installer概述 685

25.1 部署工程的建立 685

第25章 应用程序部署 685

25.1.2 Visual Studio 2005向导 686

25.2.2 快捷方式 691

25.2.1 安装目录 691

25.2 规划安装程序 691

25.3 制作安装程序 692

25.2.4 文件类型 692

25.2.3 依赖项 692

25.3.2 欢迎界面 693

25.3.1 用户界面编辑器 693

25.3.3 安装目录 694

25.3.6 完成界面 695

25.3.5 安装进度 695

25.3.4 确认安装 695

25.3.8 添加快捷方式 696

25.3.7 程序的删除 696

25.3.10 注册表编辑器 697

25.3.9 添加文件 697

25.3.11 文件类型编辑器 698

25.3.13 启动条件编辑器 699

25.3.12 自定义操作编辑器 699

25.4.1 NSIS 700

25.4 其他安装工具简介 700

25.4.2 InstallShield 701

25.5 小结 702

第6部分 案例实战 703

26.1.1 数据访问 704

26.1 需求分析 704

第26章 学生管理信息系统 704

26.1.3 系统业务功能 705

26.1.2 权限分析 705

26.2.3 字典界面 708

26.2.2 主界面 708

26.2 界面设计 708

26.2.1 登录界面 708

26.2.5 学生管理界面 711

26.2.4 用户管理 711

26.3.1 数据库连接类 712

26.3 数据访问代码 712

26.3.2 数据库命令 713

26.3.3 关闭数据库 714

26.4.1 字符串验证 715

26.4 通用类代码 715

26.4.3 下拉列表绑定类 716

26.4.2 日期时间类 716

26.5.1 系统用户 720

26.5 权限管理 720

26.5.2 用户实体 722

26.5.3 用户管理 723

26.6.1 奖励实体 726

26.6 业务相关类 726

26.6.2 奖励管理类 727

26.6.3 关系变动类 729

26.6.4 关系变动管理类 730

26.6.5 关系变动类型管理类 732

26.6.6 班级实体类 733

26.6.7 班级管理类 735

26.6.8 学院管理类 736

26.6.11 惩罚实体类 738

26.6.10 管理类接口 738

26.6.9 实体接口 738

26.6.12 惩罚管理类 740

26.6.13 惩罚类型管理类 741

26.6.14 专业管理类 743

26.6.15 学生实体类 745

26.6.16 学生管理类 750

26.7.1 更改密码界面 754

26.7 界面代码 754

26.7.2 编辑窗体 756

26.7.3 新建学生界面 762

26.7.4 属性窗体 768

26.7.5 主窗体 770

26.7.6 组织窗体 778

26.7.7 类型设定窗体 789

26.7.8 登录窗体 794

26.7.9 用户管理窗体 796

26.8 小结 798

第27章 ASP.NET学生管理信息系统 799

27.1 需求分析 799

27.1.1 数据访问 799

27.1.2 权限分析 800

27.1.3 系统业务功能 800

27.2.2 管理学生信息界面 803

27.2 界面设计 803

27.2.1 登录页面设计 803

27.2.3 组织机构设置界面 805

27.2.4 字典设置界面 806

27.2.5 系统管理界面 807

27.3 主页面及控件实现 809

27.3.1 主页面 809

27.3.2 页脚控件 811

27.3.3 菜单控件 812

27.4 学生管理实现 816

27.4.1 学籍异动及奖惩 816

27.4.2 新增学生 828

27.4.3 管理学生信息 836

27.4.4 查看学生信息 844

27.4.5 更新学生信息 849

27.5 组织管理实现 858

27.5.1 班级管理 858

27.5.2 学院管理 866

27.5.3 专业管理 872

27.6 系统管理实现 879

27.6.1 用户登录 879

27.6.2 用户更新 882

27.6.3 用户管理 886

27.7 字典管理实现 893

27.7.1 学籍异动类型管理 893

27.7.2 处罚类型管理 899

27.8 小结 905

精品推荐