《精通Visual C#》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:Tony Gaddis著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302509103
  • 页数:766 页
图书介绍:本书是《精通Visual C#》。

第1章 计算机和编程导论 1

1.1 导言 1

1.2 硬件和软件 2

1.2.1 硬件 2

1.2.2 软件 5

1.2.3 思考题 5

1.3 计算机存储数据的方式 6

1.3.1 数字存储 7

1.3.2 字符存储 8

1.3.3 高级数字存储 9

1.3.4 其他类型数据的存储方式 9

1.3.5 思考题 9

1.4 程序工作原理 10

1.4.1 从机器语言到汇编语言 12

1.4.2 高级语言 12

1.4.3 关键字、运算符和语法概述 13

1.4.4 编译器和解释器 14

1.4.5 思考题 15

1.5 图形用户界面 16

1.5.1 事件驱动的GUI程序 17

1.5.2 思考题 18

1.6 对象 18

1.6.1 可见对象与不可见对象 19

1.6.2 类:对象来源 20

1.6.3 .NET框架 20

1.6.4 编写自定义类 20

1.6.5 思考题 20

1.7 程序开发过程 21

1.7.1 程序开发周期 21

1.7.2 思考题 24

1.8 Visual Studio开发环境入门 24

教程1-1:Visual Studio入门和环境设置 25

1.8.1 新建项目 27

教程1-2:新建Visual C#项目 27

教程1-3:保存和关闭项目 29

1.8.2 Visual Studio开发环境 29

1.8.3 使用“自动隐藏”功能 30

1.8.4 菜单栏和“标准”工具栏 31

1.8.5 工具箱 32

1.8.6 使用工具提示 34

1.8.7 停靠和浮动窗口 34

1.8.8 项目和解决方案 34

1.8.9 解决方案和项目在磁盘上的典型组织方式 36

1.8.10 打开现有的项目 37

教程1-4:打开现有的项目 37

1.8.11 显示设计器窗口 37

1.8.12 访问Visual Studio文档 38

教程1-5:熟悉Visual Studio开发环境 38

1.8.13 思考题 39

本章重点词汇(中英文对照) 39

复习和练习 41

编程挑战 44

第2章 Visual C#简介 46

2.1 窗体和控件入门 46

2.1.1 应用程序窗体 46

2.1.2 通过名称识别窗体和控件 46

2.1.3 “属性”窗口 48

2.1.4 添加控件到窗体中 50

2.1.5 按钮控件详解 51

2.1.6 修改控件的名称 52

2.1.7 控件命名规则 53

2.1.8 思考题 54

2.2 为第一个程序创建图形用户界面 54

教程2-1:创建Hello World应用程序的图形用户界面 55

2.3 初识C#代码 58

2.3.1 在代码编辑器和设计器之间切换 61

2.3.2 将自己的代码添加到项目中 62

2.3.3 消息框 64

2.3.4 字符串常量 66

2.3.5 多个按钮与事件处理程序 66

2.3.6 设计时和运行时 67

2.3.7 思考题 68

2.4 为Hello World应用程序编写代码 68

教程2-2:为Hello World应用程序编写代码 68

2.5 使用标签控件 70

2.5.1 设置字体属性 72

2.5.2 设置边框样式属性 73

2.5.3 设置自动调整大小属性 73

2.5.4 设置文本对齐属性 74

2.5.5 使用代码在标签控件中显示输出 75

教程2-3:创建Language Translator程序 78

2.5.6 思考题 81

2.6 了解智能感知功能 81

2.7 使用图片框控件 82

2.7.1 设置大小模式属性 84

2.7.2 创建可单击的图像 85

教程2-4:创建Flags应用程序 86

2.7.3 可见性属性 89

教程2-5:创建Card Flip应用程序 90

2.7.4 语句执行顺序 93

2.7.5 思考题 94

2.8 注释、空行和缩进 94

2.8.1 注释 94

2.8.2 使用空行和缩进使代码更易于阅读 95

2.8.3 思考题 96

2.9 编写代码以关闭应用程序窗体 96

2.10 处理语法错误 97

思考题 98

本章重点词汇(中英文对照) 98

复习和练习 99

编程挑战 102

第3章 处理数据 106

3.1 使用文本框控件读取输入 106

3.1.1 清除文本框控件的内容 108

3.1.2 思考题 108

3.2 变量初窥 108

3.2.1 数据类型 109

3.2.2 变量名 109

3.2.3 string变量 109

3.2.4 字符串连接 110

3.2.5 在使用变量之前必须先声明 112

3.2.6 局部变量 112

3.2.7 变量的作用域 112

3.2.8 变量的生存周期 113

3.2.9 重复的变量名称 113

3.2.10 赋值兼容性 113

3.2.11 一个变量一次只能保存一个值 114

教程3-1:创建Birth Date String应用程序 115

3.2.12 初始化变量 118

3.2.13 使用一个语句声明多个变量 119

3.2.14 思考题 119

3.3 数字数据类型和变量 120

3.3.1 数字常量 121

3.3.2 int变量的赋值兼容性 122

3.3.3 double变量的赋值兼容性 122

3.3.4 decimal变量的赋值兼容性 123

3.3.5 使用强制类型转换运算符显式转换值 123

3.3.6 思考题 124

3.4 执行计算 125

3.4.1 计算的顺序 126

3.4.2 使用括号分组 127

3.4.3 在数学表达式中使用混合的数据类型 127

3.4.4 整除 128

3.4.5 组合赋值运算符 129

3.4.6 思考题 130

3.5 输入和输出数字值 130

3.5.1 从文本框中获取数字 130

3.5.2 显示数字值 133

3.5.3 使用+运算符进行隐式字符串转换 134

教程3-2:计算燃油的经济性 135

3.5.4 思考题 138

3.6 使用ToString方法设置数字格式 138

3.6.1 数字格式 139

3.6.2 固定点格式 139

3.6.3 指数格式 140

3.6.4 货币格式 140

3.6.5 使用百分比格式 140

3.6.6 指定精度 140

3.6.7 四舍五入 140

3.6.8 对整数值使用前导零 141

教程3-3:创建具有货币格式化功能的Sale Price Calculator应用程序 141

3.6.9 思考题 145

3.7 简单的异常处理 145

3.7.1 处理异常 146

3.7.2 显示异常的默认错误消息 149

教程3-4:创建包含异常处理机制的Test Average应用程序 150

3.7.3 思考题 154

3.8 使用命名常量 154

3.9 声明变量为字段 155

3.9.1 在窗体类中字段的生存周期 158

3.9.2 慎用字段 158

3.9.3 常量字段 159

教程3-5:创建Change Counter应用程序 159

3.9.4 思考题 163

3.10 使用Math类 164

3.10.1 Math.PI和Math.E命名常量 165

3.10.2 思考题 165

3.11 图形用户界面详解 165

3.11.1 控制窗体的Tab键顺序 165

3.11.2 使用Focus方法改变焦点 167

3.11.3 将键盘访问键分配给按钮 168

3.11.4 BackColor属性 169

3.11.5 ForeColor属性 170

3.11.6 使用代码设置颜色 170

3.11.7 窗体的背景图像 171

3.11.8 使用GroupBox和Panel来组织控件 172

3.12 使用调试器定位逻辑错误 174

教程3-6:在运行时单步执行应用程序代码 175

思考题 178

本章重点词汇(中英文对照) 179

复习和练习 180

编程挑战 182

第4章 条件选择 187

4.1 决策结构和if语句 187

4.1.1 布尔表达式和关系运算符 189

4.1.2 综合应用 190

教程4-1:完成Test Score Average应用程序 191

4.1.3 思考题 195

4.2 if-else语句 195

教程4-2:完成Payroll with Overtime应用程序 197

思考题 201

4.3 嵌套决策结构 201

教程4-3:完成Loan Qualifier应用程序 203

4.3.1 嵌套决策结构中的缩进和对齐 207

4.3.2 测试一系列条件 207

4.3.3 if-else-if语句 210

4.3.4 思考题 212

4.4 逻辑运算符 213

4.4.1 &&运算符 213

4.4.2 ‖运算符 214

4.4.3 短路评估 214

4.4.4 !运算符 215

4.4.5 逻辑运算符的优先级 215

4.4.6 使用逻辑运算符检查数字范围 216

4.4.7 思考题 217

4.5 bool变量和标记 218

思考题 219

4.6 比较字符串 219

4.6.1 其他字符串比较 221

4.6.2 思考题 223

4.7 使用TryParse方法防止数据转换异常 223

4.7.1 验证多个文本框中的数据 226

教程4-4:计算燃油经济性 228

4.7.2 思考题 231

4.8 输入验证 231

4.9 单选按钮和复选框 233

4.9.1 单选按钮 233

4.9.2 复选框 236

4.9.3 CheckedChanged事件 237

教程4-5:创建Color Theme应用程序 238

4.9.4 思考题 241

4.10 switch语句 241

思考题 243

4.11 列表框介绍 244

4.11.1 SelectedItem属性 245

4.11.2 确定是否选中一个项目 245

教程4-6:创建Time Zone应用程序 246

4.11.3 思考题 249

本章重点词汇(中英文对照) 249

复习和练习 250

编程挑战 253

第5章 循环、文件和随机数 258

5.1 列表框详解 258

5.1.1 Items.Count属性 259

5.1.2 Items.Clear方法 260

5.1.3 思考题 260

5.2 while循环 260

5.2.1 while循环是一个预测试循环 263

5.2.2 计数器变量 263

教程5-1:使用循环计算账户余额 264

教程5-2:改进Ending Balance应用程序 267

5.2.3 无限循环 270

5.2.4 思考题 271

5.3 递增和递减运算符 271

思考题 272

5.4 for循环 273

5.4.1 for循环是一个预测试循环 276

5.4.2 在初始化表达式中声明计数器变量 276

5.4.3 其他形式的更新表达式 276

5.4.4 通过递减来倒数计数器变量 277

5.4.5 避免修改for循环体中的计数器变量 277

教程5-3:使用for循环 277

5.4.6 思考题 280

5.5 do-while循环 281

思考题 282

5.6 使用文件存储数据 282

5.6.1 文件类型 284

5.6.2 文件访问方法 284

5.6.3 文件名和文件流对象 285

5.6.4 使用StreamWriter对象将数据写入文件 286

5.6.5 使用write方法写入数据 287

5.6.6 处理与文件相关的异常 288

教程5-4:将数据写入到文本文件 288

5.6.7 将数字数据写入文本文件 292

5.6.8 将数据追加到现有文件 293

教程5-5:追加数据到Friend.txt文件 294

5.6.9 指定输出文件的位置 296

5.6.10 使用StreamReader对象从文件中读取数据 296

5.6.11 读取位置 298

5.6.12 从文本文件读取数字数据 299

5.6.13 使用循环读取文件并检测文件的结尾 301

教程5-6:使用循环读取到文件末尾 302

5.6.14 累计汇总 305

教程5-7:累计汇总 306

5.6.15 思考题 309

5.7 使用OpenFileDialog和SaveFileDialog控件 310

5.7.1 使用OpenFileDialog控件 310

5.7.2 使用SaveFileDialog控件 313

5.7.3 思考题 315

5.8 随机数 315

5.8.1 Next方法 316

5.8.2 NextDouble方法 317

教程5-8:模拟抛掷硬币 317

5.8.3 随机数种子 320

5.8.4 思考题 321

5.9 Load事件 321

教程5-9:创建一个Load事件处理程序 321

思考题 324

本章重点词汇(中英文对照) 324

复习和练习 325

编程挑战 327

第6章 使用方法实现代码模块化 331

6.1 方法入门 331

6.2 void方法 333

6.2.1 方法头 333

6.2.2 方法体 334

6.2.3 在类中声明方法 334

6.2.4 调用方法 335

教程6-1:创建并调用方法 337

6.2.5 自上而下的设计 340

6.2.6 思考题 341

6.3 将实参传递给方法 341

教程6-2:传递实参给方法 344

6.3.1 实参和形参的数据类型兼容性 348

6.3.2 形参变量的作用域 348

6.3.3 传递多个实参 348

6.3.4 命名实参 350

6.3.5 默认实参 350

6.3.6 通过值传递实参 351

6.3.7 思考题 352

6.4 通过引用传递实参 353

6.4.1 使用引用形参 353

6.4.2 使用输出形参 355

教程6-3:使用输出形参 356

6.4.3 思考题 360

6.5 返回值方法 361

6.5.1 编写自己的返回值函数 361

教程6-4:编写返回值的方法 365

6.5.2 布尔方法 368

6.5.3 使用布尔方法实现输入验证的模块化 369

教程6-5:使用布尔方法实现输入验证的模块化 369

6.5.4 从方法返回一个字符串 372

6.5.5 思考题 374

6.6 调试方法 374

教程6-6:练习使用“逐语句”命令 375

教程6-7:连续使用“逐过程”命令 376

教程6-8:练习使用“跳出”命令 377

本章重点词汇(中英文对照) 378

复习和练习 378

编程挑战 380

第7章 数组和List 385

7.1 值类型和引用类型 385

思考题 387

7.2 数组基础知识 387

7.2.1 数组元素和下标 389

7.2.2 数组元素默认值 390

7.2.3 使用数组元素 390

7.2.4 数组初始化 392

7.2.5 使用循环遍历数组 393

7.2.6 无效的下标 394

7.2.7 Length属性 394

教程7-1:使用数组保存随机生成的彩票号码清单 395

7.2.8 注意大小差一错误 397

7.2.9 使用数组的foreach循环 397

7.2.10 重新给数组引用变量赋值 399

7.2.11 思考题 400

7.3 使用文件和数组 400

7.3.1 将数组的内容写入文件 400

7.3.2 从文件中读取值并将其存储到数组中 402

7.4 将数组作为实参传递给方法 403

7.4.1 在数组形参中使用ref和out关键字 406

7.4.2 思考题 410

7.5 实用数组算法 411

7.5.1 顺序搜索 411

7.5.2 复制数组 413

7.5.3 比较数组 414

7.5.4 计算数组中值的总和 416

7.5.5 计算数组中值的平均值 416

7.5.6 查找数组中的最高值和最低值 417

7.5.7 部分填充的数组 419

教程7-2:处理数组数据 422

7.6 排序和搜索数组的高级算法 427

7.6.1 选择排序算法 427

7.6.2 二分搜索算法 432

7.6.3 思考题 434

7.7 二维数组 435

7.7.1 声明一个二维数组 436

7.7.2 访问二维数组中的元素 437

7.7.3 隐式声明二维数组的大小和初始化 437

教程7-3:完成Seating Chart应用程序 438

7.7.4 计算二维数组的所有元素之和 442

7.7.5 计算二维数组各行之和 442

7.7.6 计算二维数组各列之和 443

7.7.7 思考题 444

7.8 交错数组 444

思考题 446

7.9 List集合 446

7.9.1 创建List对象 446

7.9.2 初始化List 447

7.9.3 将项目添加到List 447

7.9.4 Count属性 447

7.9.5 访问List中的项目 448

7.9.6 将List传递给方法 448

7.9.7 从List中删除项目 449

7.9.8 在List中插入项目 450

7.9.9 搜索List中的项目 451

教程7-4:完成Test Score List应用程序 452

7.9.10 思考题 457

本章重点词汇(中英文对照) 458

复习和练习 458

编程挑战 460

第8章 数据处理详解 464

8.1 本章内容简介 464

8.2 字符串和字符处理 464

8.2.1 char数据类型 464

8.2.2 检索字符串中的单个字符 465

8.2.3 字符测试和转换方法 466

教程8-1:完成Password Validation应用程序 470

8.2.4 字符大小写转换 474

8.2.5 搜索子字符串 475

8.2.6 修改字符串的方法 482

教程8-2:完成Telephone Format应用程序 484

教程8-3:完成Telephone Unformat应用程序 488

8.2.7 拆分字符串 492

教程8-4:完成CSV Reader应用程序 495

8.2.8 思考题 499

8.3 结构 500

8.3.1 使用new运算符来创建结构实例 503

8.3.2 访问结构的字段 503

8.3.3 将一个结构对象赋值给另一个结构对象 504

8.3.4 将结构对象传递给方法 504

8.3.5 比较结构对象 505

8.3.6 结构对象数组 506

8.3.7 在List中存储结构对象 506

教程8-5:完成Phonebook应用程序 511

8.3.8 思考题 517

8.4 枚举类型 517

8.4.1 使用枚举量或enum变量的ToString方法 520

教程8-6:完成Color Spectrum应用程序 520

8.4.2 获取枚举量或enum变量的整数值 523

8.4.3 为枚举量指定整数值 523

8.4.4 比较枚举量和enum变量 523

8.4.5 使用enum变量遍历数组的元素 524

8.4.6 思考题 525

8.5 ImageList控件 525

教程8-7:完成Random Card应用程序 527

思考题 529

本章重点词汇(中英文对照) 530

复习和练习 530

编程挑战 533

第9章 类和多窗体项目 537

9.1 关于类 537

9.1.1 创建一个类 538

9.1.2 创建一个对象 540

9.1.3 编写类声明的位置 541

教程9-1:创建和使用Coin类 544

9.1.4 将对象传递给方法 548

9.1.5 思考题 549

9.2 属性 549

9.2.1 属性与公共字段 552

9.2.2 将属性作为实参传递 553

教程9-2:创建和使用CellPhone类 553

9.2.3 只读属性 558

9.2.4 避免陈旧的数据 558

9.2.5 自动属性 559

9.2.6 只读自动属性 560

9.2.7 思考题 560

9.3 带形参的构造函数和重载 561

教程9-3:创建和使用BankAccount类 561

9.3.1 重载的方法 566

9.3.2 重载的构造函数 567

9.3.3 默认构造函数 568

9.3.4 思考题 568

9.4 在数组和List中存储类类型对象 568

9.4.1 类类型对象的数组 568

9.4.2 类类型对象的List 569

教程9-4:完成Cell Phone Inventory应用程序 570

9.4.3 思考题 574

9.5 寻找问题中的类及其责任 574

9.5.1 编写问题领域的说明 574

9.5.2 识别所有的名词 575

9.5.3 修改名词列表 576

9.5.4 确定类的责任 579

9.5.5 这仅仅是个开始 583

9.5.6 思考题 584

9.6 在项目中创建多个窗体 584

9.6.1 重命名Form 1窗体 584

9.6.2 将新窗体添加到项目 586

9.6.3 在窗体和窗体代码之间切换 587

9.6.4 删除窗体 587

9.6.5 显示窗体 588

教程9-5:创建包含两个窗体的应用程序 589

9.6.6 模式窗体和无模式窗体 592

9.6.7 访问不同窗体上的控件 593

教程9-6:访问不同窗体上的控件 594

9.6.8 思考题 598

本章重点词汇(中英文对照) 598

复习和练习 599

编程挑战 602

第10章 继承和多态 605

10.1 继承 605

10.1.1 普遍性和特殊性 605

10.1.2 继承与Is-a关系 605

教程10-1:创建并测试SavingsAccount和CDAccount类 616

10.1.3 基类和派生类构造函数 622

10.1.4 继承中的构造函数问题总结 624

10.1.5 思考题 624

10.2 多态 624

10.2.1 覆盖属性 628

10.2.2 基类引用变量只知道基类成员 629

10.2.3 Is-a关系不能反向工作 629

10.2.4 传递对象给基类形参 629

教程10-2:完成Polymorphism应用程序 630

10.2.5 思考题 635

10.3 抽象类 636

教程10-3:完成Computer Science Student应用程序 637

思考题 642

本章重点词汇(中英文对照) 642

复习和练习 643

编程挑战 645

第11章 数据库 647

11.1 数据库管理系统简介 647

11.1.1 SQL Server Express Edition 648

11.1.2 思考题 648

11.2 表、行和列 648

11.2.1 列数据类型 649

11.2.2 主键 650

11.2.3 标识列 650

11.2.4 允许Null值 650

11.2.5 思考题 651

11.3 在Visual Studio中创建一个数据库 651

11.3.1 将应用程序连接到数据库 651

教程11-1:启动Phone Book应用程序并创建Phonelist.mdf数据库 652

11.3.2 数据库文件的位置 659

11.3.3 思考题 659

11.4 DataGridView控件 660

教程11-2:完成Phone Book应用程序 660

11.4.1 自动生成的代码 664

11.4.2 思考题 665

11.5 连接到现有数据库并使用“详细信息”视图控件 666

教程11-3:创建Products应用程序并使用“详细信息”视图 667

11.5.1 运行时的数据库副本 674

11.5.2 思考题 674

11.6 数据绑定控件详解 674

11.6.1 自定义DataGridView控件 674

11.6.2 自定义“详细信息”视图 676

11.6.3 将列绑定到列表框控件 677

教程11-4:创建Product Lookup应用程序 678

11.6.4 在多个窗体上有数据绑定控件 680

教程11-5:创建Multiform Products应用程序 680

11.6.5 思考题 686

11.7 使用SQL Select语句选择数据 686

11.7.1 使用Where子句指定搜索条件 687

11.7.2 使用Like运算符 688

11.7.3 使用And和Or 689

11.7.4 对Select查询的结果进行排序 690

11.7.5 TableAdapter查询 690

11.7.6 添加新的TableAdapter查询 693

教程11-6:创建Product Queries应用程序 693

11.7.7 SQL数学函数 701

教程11-7:创建Product Queries应用程序 701

11.7.8 查询形参 705

教程11-8:创建Product Search应用程序 705

11.7.9 思考题 710

本章重点词汇(中英文对照) 710

复习和练习 711

编程挑战 714

附录A C#基本数据类型 716

附录B 用户界面控件详解 717

附录C ASCII/Unicode字符 737

附录D 思考题答案 738