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

  • 购买积分:15 如何计算积分?
  • 作  者:李春葆,曾平,喻丹丹编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302413288
  • 页数:497 页
图书介绍:主要内容包括C#可视化编程过程、C#语言基础、窗体和控件设计、面向对象程序设计、图形设计、文件操作、C#高级特性、ADO.NET数据库访问技术、XML应用和Web应用程序设计等。

第1章 C#语言概述 1

1.1 什么是C#语言 1

1.1.1 C#语言的发展历程 1

1.1.2 C#语言的特点 2

1.1.3 用C#编写的应用程序类型 3

1.2 .NET Framework 3

1.2.1 什么是.NET Framework 3

1.2.2 开发托管代码的过程 6

1.2.3 C#语言与.NET Framework 8

1.3 Visual Studio 2012的安装、启动和退出 8

1.3.1 Visual Studio 2012的安装 8

1.3.2 配置Visual C#开发环境 8

1.3.3 Visual Studio 2012的启动 9

1.3.4 Visual Studio 2012的退出 10

1.4 Visual C#集成开发环境 10

1.4.1 启动Visual C#集成开发环境 10

1.4.2 Visual C#的菜单栏 11

1.4.3 Visual C#的工具栏 12

1.4.4 解决方案资源管理器 13

1.4.5 编辑器的设置 13

1.5 一个简单的C#程序 15

1.5.1 代码分析 15

1.5.2 项目的构成 17

1.5.3 控制台应用程序中的基本元素 18

练习题1 19

第2章 C#程序设计基础 22

2.1 标识符 22

2.2 C#中的数据类型 23

2.2.1 值类型 24

2.2.2 引用类型 26

2.3 C#中的变量和常量 27

2.3.1 变量 27

2.3.2 值类型变量和引用类型变量的区别 29

2.3.3 常量 32

2.4 类型的转换 33

2.4.1 隐式转换 33

2.4.2 显式转换 33

2.4.3 装箱和拆箱 35

2.5 结构类型和枚举类型 36

2.5.1 结构类型 36

2.5.2 枚举类型 38

2.6 C#运算符和表达式 40

2.6.1 算术运算符 40

2.6.2 字符串运算符 40

2.6.3 赋值运算符 40

2.6.4 关系运算符 41

2.6.5 逻辑运算符 42

2.6.6 位运算符 42

2.6.7 条件运算符 43

2.6.8 其他运算符 43

2.6.9 运算符的优先级 45

2.7 C#中的常用类和结构 46

2.7.1 String类 46

2.7.2 Math类 49

2.7.3 Convert类 49

2.7.4 DateTime结构 50

练习题2 52

第3章 C#控制语句 55

3.1 选择控制语句 55

3.1.1 if语句 55

3.1.2 if…else语句 56

3.1.3 if…else if语句 57

3.1.4 switch语句 58

3.2 循环控制语句 60

3.2.1 while语句 60

3.2.2 do…while语句 61

3.2.3 for语句 61

3.3 跳转语句 63

3.3.1 break语句 63

3.3.2 continue语句 63

3.3.3 goto语句 64

练习题3 65

第4章 数组和集合 69

4.1 一维数组 69

4.1.1 一维数组的定义 69

4.1.2 一维数组的动态初始化 69

4.1.3 一维数组的静态初始化 71

4.1.4 访问一维数组中的元素 71

4.1.5 一组数组的越界 72

4.2 二维数组 73

4.2.1 二维数组的定义 73

4.2.2 二维数组的动态初始化 73

4.2.3 二维数组的静态初始化 74

4.2.4 访问二维数组中的元素 74

4.3 交错数组 75

4.3.1 交错数组的定义和初始化 75

4.3.2 访问交错数组中的元素 76

4.4 Array类 77

4.4.1 Array类的属性和方法 77

4.4.2 Array类中方法的使用 77

4.5 ArrayList类 79

4.5.1 定义ArrayList类的对象 79

4.5.2 ArrayList类的属性 79

4.5.3 ArrayList类的方法 80

4.6 List<T>类 81

4.6.1 定义List<T>类的对象 81

4.6.2 List<T>类的属性 81

4.6.3 List<T>类的方法 81

练习题4 83

第5章 面向对象程序设计 87

5.1 面向对象程序设计概述 87

5.1.1 面向对象的基本概念 87

5.1.2 面向对象的优点 88

5.2 类 88

5.2.1 类的声明 89

5.2.2 类的成员 89

5.2.3 分部类 91

5.2.4 类和结构类型的差异 91

5.3 对象 92

5.3.1 定义类的对象 92

5.3.2 访问对象的字段 93

5.3.3 调用(或访问)对象的方法 93

5.3.4 访问对象成员的限制 93

5.3.5 类对象的内存空间分配方式 95

5.4 命名空间 96

5.4.1 命名空间概述 96

5.4.2 使用命名空间 96

5.5 构造函数和析构函数 98

5.5.1 构造函数 99

5.5.2 析构函数 100

5.6 静态成员 101

5.6.1 静态字段 101

5.6.2 静态方法 102

5.7 属性 105

5.7.1 什么是属性 105

5.7.2 属性的声明及使用 105

5.7.3 自动实现的属性 107

5.8 方法 107

5.8.1 方法的定义 107

5.8.2 方法的返回值 108

5.8.3 方法的参数类型 108

5.8.4 可选参数 113

5.8.5 this关键字 113

5.8.6 方法的重载 114

5.8.7 运算符重载 115

5.9 对象的复制 117

5.9.1 浅复制 117

5.9.2 深复制 118

5.10 嵌套类 119

5.10.1 嵌套类的声明 119

5.10.2 嵌套类和包含类的关系 120

5.11 索引器 121

5.11.1 什么是索引器 121

5.11.2 声明索引器 121

5.11.3 使用其他非整数的索引类型 122

5.12 委托 123

5.12.1 什么是委托 123

5.12.2 定义和使用委托 124

5.12.3 委托对象封装多个方法 126

5.12.4 委托与匿名方法 127

5.12.5 委托和Lambda(λ)表达式 128

5.13 事件 129

5.13.1 事件处理机制 129

5.13.2 事件的创建和使用 131

练习题5 135

第6章 继承和接口设计 141

6.1 继承 141

6.1.1 什么是继承 141

6.1.2 派生类的声明 142

6.1.3 基类成员的可访问性 143

6.1.4 按次序调用构造函数和析构函数 143

6.1.5 使用sealed修饰符禁止继承 146

6.2 多态性 146

6.2.1 隐藏基类方法 146

6.2.2 重写基类方法 147

6.2.3 dynamic类型 150

6.2.4 对象的类型判别和类对象引用的转换 151

6.3 抽象类 154

6.3.1 抽象类的特性 154

6.3.2 抽象方法 154

6.3.3 抽象属性 155

6.4 接口 156

6.4.1 接口的特性 156

6.4.2 接口的定义 157

6.4.3 接口的成员 157

6.4.4 接口的实现 158

6.4.5 接口映射 161

6.4.6 接口实现的继承 162

6.4.7 重新实现接口 164

6.5 接口在集合排序中的应用 166

6.5.1 ArrayList类的排序方法 166

6.5.2 IComparable接口 166

6.5.3 IComparer接口 168

练习题6 171

第7章 泛型和反射 177

7.1 泛型 177

7.1.1 什么是泛型 177

7.1.2 泛型的声明和使用 178

7.1.3 泛型的MSIL代码结构 181

7.1.4 类型参数的约束 182

7.1.5 泛型的继承 185

7.1.6 泛型接口和委托 185

7.2 反射 186

7.2.1 反射概述 186

7.2.2 反射中常用的类 186

7.2.3 反射的应用示例 189

练习题7 193

第8章 枚举器和迭代器 195

8.1 枚举器 195

8.1.1 枚举器概述 195

8.1.2 IEnumerator接口 195

8.1.3 IEnumerable接口 197

8.1.4 泛型枚举接口 199

8.2 迭代器 199

8.2.1 迭代器概述 199

8.2.2 迭代器方法 200

8.2.3 get访问器 205

练习题8 207

第9章 Windows应用程序设计 208

9.1 窗体设计 208

9.1.1 创建Windows窗体应用程序的过程 208

9.1.2 窗体的类型 210

9.1.3 窗体的常用属性 210

9.1.4 窗体的常用事件 212

9.1.5 窗体的常用方法 213

9.1.6 多个窗体之间的调用 213

9.1.7 窗体上各事件的引发顺序 216

9.1.8 焦点与Tab键次序 216

9.2 常用的控件设计 217

9.2.1 控件概述 217

9.2.2 富文本框控件 218

9.2.3 分组框控件 220

9.2.4 面板控件 220

9.2.5 复选框控件 221

9.2.6 单选按钮控件 223

9.2.7 图片框控件 224

9.2.8 组合框控件 225

9.2.9 列表框控件 227

9.2.10 带复选框的列表框控件 229

9.2.11 定时器控件 231

9.2.12 滚动条控件 232

9.2.13 月历控件 233

9.2.14 日期/时间控件 234

9.2.15 超链接标签控件 235

9.3 多个窗体之间的数据传递 236

9.3.1 通过静态字段传递数据 236

9.3.2 通过构造函数传递数据 238

9.4 多文档窗体 239

9.4.1 MDI父窗体的属性、事件和方法 239

9.4.2 MDI子窗体的属性 240

9.4.3 创建MDI父窗体及其子窗体 240

9.5 窗体设计的事件机制 242

9.5.1 窗体事件的处理原理 242

9.5.2 在Windows窗体中创建事件过程 245

9.5.3 在执行时为Windows窗体创建事件过程 246

9.5.4 将多个事件连接到Windows窗体中的单个事件过程 246

练习题9 249

第10章 用户界面设计 252

10.1 菜单设计 252

10.1.1 菜单的基本结构 252

10.1.2 创建下拉式菜单 253

10.1.3 设计弹出式菜单 260

10.2 通用对话框 262

10.2.1 打开文件对话框 263

10.2.2 保存文件对话框 264

10.2.3 颜色对话框 266

10.2.4 字体对话框 266

10.3 图像列表框控件 267

10.3.1 建立ImageList控件 268

10.3.2 ImageList控件的属性 268

10.3.3 Images集合的属性和方法 269

10.4 树形视图控件 269

10.4.1 TreetView控件概述 269

10.4.2 建立TreeView控件 270

10.4.3 TreeView控件的属性 270

10.4.4 TreeView控件的事件和方法 271

10.4.5 Nodes集合和TreeNode对象 271

10.4.6 执行时TreeView控件的基本操作 273

10.5 列表视图控件 275

10.5.1 ListView控件概述 275

10.5.2 建立ListView控件 276

10.5.3 ListView控件的属性 277

10.5.4 ListView控件的事件和方法 277

10.5.5 Items集合和ListViewItem对象 278

10.5.6 Columns集合和ColumnHeader对象 279

10.5.7 执行时ListView控件的基本操作 280

10.6 工具栏控件 281

10.6.1 建立ToolStrip控件 282

10.6.2 ToolStrip控件的属性 282

10.6.3 Items集合和ToolStripButton对象 283

10.7 状态栏控件 284

10.7.1 建立StatusStrip控件 284

10.7.2 StautsStrip控件的属性 285

练习题10 285

第11章 图形设计 287

11.1 绘图概述 287

11.1.1 绘图的基本知识 287

11.1.2 什么是GDI+ 288

11.1.3 Graphics类 289

11.2 绘图的基本步骤 289

11.3 绘制图形 291

11.3.1 绘制直线 291

11.3.2 绘制矩形 291

11.3.3 绘制多边形 292

11.3.4 绘制圆和椭圆 293

11.3.5 绘制弧线 293

11.3.6 绘制饼形 294

11.3.7 绘制非闭合曲线 294

11.3.8 绘制闭合曲线 295

11.3.9 绘制贝济埃曲线 296

11.4 创建画图工具 296

11.4.1 创建画笔 296

11.4.2 创建笔刷 298

11.4.3 创建字体 299

11.5 绘制文本 300

练习题11 301

第12章 文件操作 303

12.1 文件和System.IO模型概述 303

12.1.1 文件的类型 303

12.1.2 文件的属性 304

12.1.3 文件的访问方式 304

12.2 System.IO模型 304

12.2.1 什么是System.IO模型 304

12.2.2 文件编码 305

12.2.3 C#的文件流 306

12.3 文件夹和文件的操作 306

12.3.1 文件夹的操作 306

12.3.2 文件的操作 307

12.4 FileStream类 309

12.5 文本文件的操作 310

12.5.1 StreamReader类 310

12.5.2 StreamWriter类 311

12.6 二进制文件的操作 314

12.6.1 BinaryWriter类 314

12.6.2 BinaryReader类 315

12.6.3 二进制文件的随机查找 317

12.7 序列化和反序列化 318

12.7.1 序列化 318

12.7.2 反序列化 319

练习题12 320

第13章 错误调试和异常处理 323

13.1 错误的分类 323

13.2 程序调试 325

13.2.1 调试工具 325

13.2.2 设置断点 325

13.2.3 调试过程 326

13.3 异常处理 330

13.3.1 异常概述 330

13.3.2 异常处理语句 330

13.3.3 常用的异常类 333

练习题13 334

第14章 多线程和异步程序设计 337

14.1 多线程程序设计 337

14.1.1 多线程概述 337

14.1.2 线程命名空间 337

14.1.3 Thread类及其应用 338

14.1.4 线程优先级和线程调度 343

14.1.5 线程互斥 346

14.1.6 线程同步 350

14.1.7 volatile关键字 352

14.1.8 线程池 353

14.2 异步程序设计 355

14.2.1 异步的概念 355

14.2.2 同步和异步的差别 356

14.2.3 TAP异步模式编程 359

练习题14 365

第15章 ADO.NET数据库访问技术 367

15.1 数据库概述 367

15.1.1 关系数据库的基本结构 367

15.1.2 结构化查询语言 369

15.2 ADO.NET模型 372

15.2.1 ADO.NET简介 372

15.2.2 ADO.NET体系结构 373

15.2.3 ADO.NET数据库的访问流程 375

15.3 ADO.NET的数据访问对象 375

15.3.1 OleDbConnection对象 375

15.3.2 OleDbCommand对象 379

15.3.3 OleDbDataReader对象 384

15.3.4 OleDbDataAdapter对象 387

15.4 DataSet对象 391

15.4.1 DataSet对象概述 391

15.4.2 Dataset对象的属性和方法 392

15.4.3 Tables集合属性和DataTable对象 393

15.4.4 Columns集合属性和DataColumn对象 396

15.4.5 Rows集合属性和DataRow对象 397

15.5 数据绑定 399

15.5.1 数据绑定概述 399

15.5.2 BindingNavigator控件 404

15.6 DataView对象 407

15.6.1 DataView对象概述 407

15.6.2 DataView对象的列排序设置 408

15.6.3 DataView对象的过滤条件设置 409

15.7 DataGridView控件 410

15.7.1 创建DataGridView对象 410

15.7.2 DataGridView的属性、方法和事件 413

15.7.3 DataGridView与DataView对象结合 416

15.7.4 通过DataGridView对象更新数据源 418

练习题15 420

第16章 XML及其应用 424

16.1 XML概述 424

16.2 XML语法规则 425

16.2.1 XML文档中的有关术语 425

16.2.2 XML文档的结构 428

16.2.3 XML文档的语法规定 430

16.3 XPath表达式 432

16.3.1 路径匹配 433

16.3.2 谓词 433

16.3.3 属性匹配 434

16.3.4 通配符 434

16.3.5 XPath轴 434

16.4 用.NET Framework类操作XML文档 435

16.4.1 XML文档操作类 435

16.4.2 XML文档的结点操作 442

16.5 DataSet和XML文档的相互转换 444

16.5.1 将XML文档转换成DataSet数据 444

16.5.2 将DataSet数据转换成XML文件 445

练习题16 446

第17章 LINQ技术 449

17.1 LINQ概述 449

17.1.1 什么是LINQ 449

17.1.2 LINQ提供程序 449

17.2 使用LINQ to Objects 450

17.2.1 LINQ的基本操作 450

17.2.2 LINQ查询子句 451

17.2.3 方法查询 459

练习题17 463

第18章 Web应用程序设计 466

18.1 ASP.NET概述 466

18.1.1 ASP.NET的发展历程 466

18.1.2 ASP.NET网页的组成 466

18.1.3 ASP.NET网页的执行方式 467

18.1.4 ASP.NET网页的代码编写模型 467

18.2 创建一个简单的Web应用程序 467

18.3 基本ASP.NET服务器控件 472

18.3.1 服务器控件概述 472

18.3.2 Label、Button和TextBox控件 474

18.3.3 DropDownList控件 474

18.3.4 CheckBox、CheckBoxList、RadioButton和RadioButtonList控件 476

18.3.5 数据验证控件 479

18.3.6 链接控件 482

18.4 高级ASP.NET服务器端控件 483

18.4.1 SqlDataSource控件 483

18.4.2 GridView控件 485

18.4.3 DetailsView控件 491

练习题18 494

参考文献 497