C# 6和Visual Studio 2015编程实战指南
《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。版的 C#入门经典(第7版) C# 6.0 & Visual Studio2015 介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用教程从最基本的面向对象编程讲起,浓墨重彩地描述初学者最常用的工具,不要求读者具有任何编程经验。紧贴实用的示例使用Visual Studio 2015中的C#环境,涵盖微软为使C#更好兼容其他编程语言所做的改进。本书呈现微软博学开发人员的专家级建议,将指导初学者立即上手编写Windows和Web应用程序。
主要内容
首先讲解编程基础知识,如变量、流控制、面向对象编程、类、函数、集合、比较和转换等
重点介绍Visual Studio 2015中初学者喜欢的C# 6开发环境,囊括所有功能和语言改进
包括云和Windows编程中级内容,涵盖数据库和XML
揭密错误处理技术和调试过程
以专家撰写的分步指南为特色,指导初学者在真实编程环境中编写有用的代码
WORX经典红皮书
C#经典名著
畅销17年
升级至第7版
源代码免费提供下载
引领无数读者进入IT开发殿堂
本书的亮点包括:
● 增加并改进了代码示例。
● 涵盖C# 6和.NET 4.6的所有新内容,包括如何创建通用Windows应用程序。
● 增加了编写云应用程序的示例,并使用Azure SDK创建和访问云资源。
0.3 本书结构
本书分为6个部分。
● 前言:概述本书的内容。
● OOP语言:介绍C#语言的所有内容,从基础知识到面向对象的技术,一应俱全。
● Windows编程:介绍如何用WPF库编写和部署桌面应用程序。
● 云编程:描述云应用程序的开发和部署,包括Web API的创建和使用。
● 数据访问:介绍如何在应用程序中使用数据,包括存储在硬盘文件中的数据、以XML格式存储的数据和数据库中的数据。
● 其他技术:讲述使用C#和.NET Framework的一些额外方式,包括WCF和通用Windows应用程序。
作者简介
Benjamin Perkins是Microsoft的博学“技术支持”工程师,一位狂热的C#程序员,在企业级IT解决方案领域拥有15年工作经验。
Jacob Vibe Hammer是Terma的一名软件工程师,合著编写过多本.NET图书。
Jon D. Reid是IFS研发团队(www.ifsworld.com)的产品解决方案经理,负责为Microsoft环境开发C#程序。
目 录
第Ⅰ部分 OOP 语 言
第1章 C#简介 3
1.1 .NET Framework的含义 3
1.1.1 .NET Framework的内容 4
1.1.2 使用.NET Framework编写应用程序 4
1.2 C#的含义 7
1.2.1 用C#能编写什么样的应用程序 8
1.2.2 本书中的C# 8
1.3 Visual Studio 2015 8
1.3.1 Visual Studio Express 2015产品 9
1.3.2 解决方案 9
1.4 本章要点 9
第2章 编写C#程序 11
2.1 Visual Studio 2015开发环境 12
2.2 控制台应用程序 14
2.2.1 Solution Explorer窗口 16
2.2.2 Properties窗口 18
2.2.3 Error List窗口 18
2.3 桌面应用程序 19
2.4 本章要点 22
第3章 变量和表达式 23
3.1 C#的基本语法 24
3.2 C#控制台应用程序的基本结构 26
3.3 变量 27
3.3.1 简单类型 27
3.3.2 变量的命名 31
3.3.3 字面值 31
3.4 表达式 33
3.4.1 数学运算符 33
3.4.2 赋值运算符 37
3.4.3 运算符的优先级 38
3.4.4 名称空间 39
3.5 练习 40
3.6 本章要点 41
第4章 流程控制 43
4.1 布尔逻辑 43
4.1.1 布尔按位运算符和赋值运算符 45
4.1.2 运算符优先级的更新 47
4.2 分支 47
4.2.1 三元运算符 48
4.2.2 if语句 48
4.2.3 switch语句 51
4.3 循环 54
4.3.1 do循环 54
4.3.2 while循环 57
4.3.3 for循环 58
4.3.4 循环的中断 59
4.3.5 无限循环 60
4.4 练习 61
4.5 本章要点 61
第5章 变量的更多内容 63
5.1 类型转换 63
5.1.1 隐式转换 64
5.1.2 显式转换 65
5.1.3 使用Convert命令进行显式转换 68
5.2 复杂的变量类型 69
5.2.1 枚举 69
5.2.2 结构 73
5.2.3 数组 76
5.3 字符串的处理 82
5.4 练习 86
5.5 本章要点 87
第6章 函数 89
6.1 定义和使用函数 90
6.1.1 返回值 91
6.1.2 参数 93
6.2 变量的作用域 99
6.2.1 其他结构中变量的作用域 102
6.2.2 参数和返回值与全局数据 103
6.3 Main()函数 104
6.4 结构函数 106
6.5 函数的重载 107
6.6 委托 109
6.7 练习 111
6.8 本章要点 112
第7章 调试和错误处理 113
7.1 Visual Studio中的调试 114
7.1.1 非中断(正常)模式下的调试 114
7.1.2 中断模式下的调试 121
7.2 错误处理 127
7.2.1 try...catch...finally 128
7.2.2 列出和配置异常 133
7.3 练习 134
7.4 本章要点 134
第8章 面向对象编程简介 137
8.1 面向对象编程的含义 137
8.1.1 对象的含义 138
8.1.2 一切皆对象 141
8.1.3 对象的生命周期 141
8.1.4 静态成员和实例类成员 142
8.2 OOP技术 143
8.2.1 接口 143
8.2.2 继承 144
8.2.3 多态性 146
8.2.4 对象之间的关系 148
8.2.5 运算符重载 149
8.2.6 事件 149
8.2.7 引用类型和值类型 150
8.3 桌面应用程序中的OOP 150
8.4 练习 153
8.5 本章要点 154
第9章 定义类 155
9.1 C#中的类定义 155
9.2 System.Object 160
9.3 构造函数和析构函数 161
9.4 Visual Studio中的OOP工具 166
9.4.1 Class View窗口 166
9.4.2 对象浏览器 167
9.4.3 添加类 169
9.4.4 类图 169
9.5 类库项目 171
9.6 接口和抽象类 174
9.7 结构类型 176
9.8 浅度和深度复制 177
9.9 练习 178
9.10 本章要点 178
第10章 定义类成员 181
10.1 成员定义 181
10.1.1 定义字段 182
10.1.2 定义方法 182
10.1.3 定义属性 183
10.1.4 重构成员 188
10.1.5 自动属性 189
10.2 类成员的其他主题 190
10.2.1 隐藏基类方法 190
10.2.2 调用重写或隐藏的基类方法 192
10.2.3 嵌套的类型定义 193
10.3 接口的实现 195
10.4 部分类定义 198
10.5 部分方法定义 199
10.6 示例应用程序 200
10.6.1 规划应用程序 201
10.6.2 编写类库 201
10.6.3 类库的客户应用程序 208
10.7 Call Hierarchy窗口 209
10.8 练习 210
10.9 本章要点 210
第11章 集合、比较和转换 211
11.1 集合 212
11.1.1 使用集合 212
11.1.2 定义集合 218
11.1.3 索引符 219
11.1.4 给CardLib添加Cards集合 221
11.1.5 键控集合和IDictionary 224
11.1.6 迭代器 225
11.1.7 迭代器和集合 229
11.1.8 深度复制 230
11.1.9 给CardLib添加深度复制 232
11.2 比较 234
11.2.1 类型比较 234
11.2.2 值比较 238
11.3 转换 254
11.3.1 重载转换运算符 254
11.3.2 as运算符 255
11.4 练习 256
11.5 本章要点 257
第12章 泛型 259
12.1 泛型的含义 259
12.2 使用泛型 261
12.2.1 可空类型 261
12.2.2 System.Collections.Generic名称空间 268
12.3 定义泛型类型 278
12.3.1 定义泛型类 278
12.3.2 定义泛型接口 289
12.3.3 定义泛型方法 289
12.3.4 定义泛型委托 291
12.4 变体 291
12.4.1 协变 292
12.4.2 抗变 292
12.5 练习 293
12.6 本章要点 294
第13章 高级C#技术 297
13.1 ::运算符和全局名称空间限定符 298
13.2 定制异常 299
13.3 事件 301
13.3.1 事件的含义 301
13.3.2 处理事件 302
13.3.3 定义事件 305
13.4 扩展和使用CardLib 312
13.5 特性 320
13.5.1 读取特性 321
13.5.2 创建特性 322
13.6 初始化器 323
13.6.1 对象初始化器 323
13.6.2 集合初始化器 325
13.7 类型推理 329
13.8 匿名类型 330
13.9 动态查找 334
13.10 高级方法参数 338
13.10.1 可选参数 339
13.10.2 命名参数 340
13.11 Lambda表达式 344
13.11.1 复习匿名方法 344
13.11.2 把Lambda表达式用于匿名方法 345
13.11.3 Lambda表达式的参数 349
13.11.4 Lambda表达式的语句体 349
13.11.5 Lambda表达式用作委托和表达式树 350
13.11.6 Lambda表达式和集合 351
13.12 练习 354
13.13 本章要点 355
第Ⅱ部分 Windows编程
第14章 基本桌面编程 359
14.1 XAML 360
14.1.1 关注点分离 360
14.1.2 XAML基础知识 360
14.2 动手实践 363
14.2.1 WPF控件 363
14.2.2 属性 364
14.2.3 事件 368
14.3 控件布局 372
14.3.1 堆叠顺序 373
14.3.2 对齐、边距、填充和尺寸 373
14.3.3 Border控件 374
14.3.4 Canvas控件 374
14.3.5 DockPanel控件 375
14.3.6 StackPanel控件 377
14.3.7 WrapPanel控件 378
14.3.8 Grid控件 379
14.4 游戏客户端 381
14.4.1 About窗口 382
14.4.2 Options窗口 386
14.4.3 数据绑定 394
14.4.4 使用ListBox控件启动游戏 399
14.5 练习 403
14.6 本章要点 403
第15章 高级桌面编程 405
15.1 主窗口 405
15.1.1 菜单控件 406
15.1.2 路由命令和菜单 406
15.2 创建控件并设置样式 410
15.2.1 样式 410
15.2.2 模板 411
15.2.3 值转换器 415
15.2.4 触发器 416
15.2.5 动画 418
15.3 WPF用户控件 420
15.4 把所有内容结合起来 430
15.4.1 重构域模型 431
15.4.2 视图模型 436
15.4.3 大功告成 444
15.5 练习 453
15.6 本章要点 453
第Ⅲ部分 云 编 程
第16章 基本的云编程 457
16.1 云、云编程和云优化堆栈 458
16.2 云模式和实践 460
16.3 使用Microsoft Azure C#库创建存储容器 461
16.4 创建使用存储容器的ASP.NET 4.6 网站 471
16.5 练习 478
16.6 本章要点 478
第17章 高级云编程和部署 479
17.1 创建ASP.NET Web API 480
17.2 在Microsoft Azure上部署和使用ASP.NET Web API 483
17.3 扩展Microsoft Azure平台上的ASP.NET Web API 490
17.4 练习 493
17.5 本章要点 493
第Ⅳ部分 数 据 访 问
第18章 文件 497
18.1 用于输入和输出的类 497
18.1.1 File类和Directory类 498
18.1.2 FileInfo类 499
18.1.3 DirectoryInfo类 500
18.1.4 路径名和相对路径 501
18.2 流 501
18.2.1 使用流的类 501
18.2.2 FileStream对象 502
18.2.3 StreamWriter对象 508
18.2.4 StreamReader对象 510
18.2.5 异步文件访问 513
18.2.6 读写压缩文件 513
18.3 监控文件系统 516
18.4 练习 521
18.5 本章要点 521
第19章 XML和JSON 523
19.1 XML基础 523
19.2 JSON 基础 524
19.3 XML模式 525
19.4 XML文档对象模型 526
19.4.1 XmlDocument类 527
19.4.2 XmlElement类 528
19.4.3 修改节点的值 531
19.5 把XML转换为JSON 536
19.6 用XPath搜索XML 537
19.7 练习 541
19.8 本章要点 542
第20章 LINQ 543
20.1 使用LINQ to XML 544
20.1.1 LINQ to XML函数构造方式 544
20.1.2 处理XML片段 547
20.2 LINQ提供程序 549
20.3 LINQ查询语法 550
20.3.1 用var关键字声明结果变量 552
20.3.2 指定数据源:from子句 552
20.3.3 指定条件:where子句 553
20.3.4 选择元素:select子句 553
20.3.5 完成:使用foreach循环 553
20.3.6 延迟执行的查询 553
20.4 LINQ方法语法 554
20.4.1 LINQ扩展方法 554
20.4.2 查询语法和方法语法 554
20.4.3 Lambda 表达式 555
20.5 排序查询结果 557
20.6 orderby子句 558
20.7 查询大型数据集 559
20.8 使用聚合运算符 561
20.9 单值选择查询 564
20.10 多级排序 567
20.11 组合查询 569
20.12 Join查询 571
20.13 练习 572
20.14 本章要点 572
第21章 数据库 575
21.1 使用数据库 575
21.2 安装SQL Server Express 576
21.3 Entity Framework 576
21.4 Code First 数据库 576
21.5 数据库的位置 583
21.6 导航数据库关系 584
21.7 处理迁移 591
21.8 在已有的数据库中创建和查询XML 593
21.9 练习 596
21.10 本章要点 597
第Ⅴ部分 其 他 技 术
第22章 Windows Communication Foundation 601
22.1 WCF的含义 602
22.2 WCF概念 602
22.2.1 WCF通信协议 603
22.2.2 地址、端点和绑定 603
22.2.3 协定 605
22.2.4 消息模式 605
22.2.5 行为 605
22.2.6 驻留 606
22.3 WCF编程 606
22.3.1 WCF测试客户端程序 612
22.3.2 定义WCF服务协定 6
还可以了,书本太薄了感觉内容少。书的包装保护就是一层很薄的胶口袋,而且快递送来的时候打开包裹胶口袋都坏了
书不算厚,感觉作者讲的内容没有很大的层次感,显得有点乱,而且较之之前看的编程书籍,这本书讲解的没那么清晰。书的标价感觉与实际内容不符,书贵,内容也讲解的不够透彻,还需费一番功夫。
来的时候书后的封皮折了,由于11的关系到的有些晚,但书的质量很好,给好评!
这书不错,一直想买,但太贵,还次打折果断买了,好!
包装太简陋,运输过程中极容易压伤,别问我为啥,我心疼我书,,,
质量好像不怎么样,翻了几天后书前面就都散了
有一点小瑕丝,还好,就是外皮有点胶水,其他的都没问题
书拿到了,都有独立封装,还没开始阅读,从印刷质量看,是正品。
这本书应该不错吧,买了两本,还没看到这本,等我看完再来追评。
这个我有第六版,看见第七版还是买了,因为这书是极好的,我相信作者会在新版书中给我带来更多。
很经典的书了,升级到了第7版,外版书确实系统,而且又是大师著作,值得信赖
内容挺多,细心看还是容易懂的,就是用的c#6.0,有点蛋疼
当当的书送得就是快!这次书到手后稍有点挤压的痕迹。大体翻了一下,感觉买得不亏。
运输什么的没问题,但这书我才看一点都已经看见俩错了
第一次在当当买书,书的质量挺好的,以后还会再来。
一本关于c#的经典书籍,很不错的一本书,物流也很给力,继续支持。
书的质量非常好,而且比想象中的厚多了,内容很丰富,对于初学者来说是很不错的选择
讲的很详细,估计是为了锻炼读者的思考,主动加了一些很浅显的错误,这一点我觉得很好,锻炼了找错的能力,这个在开发中很重要。
我是做嵌入式的 偶尔需要写一些界面 买来学习一下希望有所帮助
包装不怎么好。还没有开就能看到里面的东西。而且我打开的时候里面的包装都开始烂了。但是整体的感觉还是不错。还没开始看,
书是好书,就是这质量,无语!刚收到的书就这样了,离掉页不远了,一直很信赖当当,这次是最差的一次购物!
书本质量很不错,纸张是纯白的那种,印迹很清晰,很好的书,如果快递包装多加一层泡沫就更好了,运送过程中有一处小破损,好在并不是很大,不影响
书很完整 内容很丰富 是本值得一读的经典好书!
因为编程需要,买了,书蛮精致的,还是觉得太重了点。
针对最新版C#语言和开发工具升级的入门教材,对于初学者很有帮助
习惯好评 还没看 看了在追加 是新手应该帮助很大
书不错,但是装帧质量太差了。刚开始看,就开始掉页了,刚刚我一翻,居然有一页直接从书中脱出来了。真是让人无法接受。从来没有见过装订质量这么差的书,盗版书也不会这样啊。
自己是搞嵌入式的,但是有时候需要写一些PC端应用测试程序。买来这本书看看,学习一下C#,这样不用再请别人帮忙写了
书是好书,IT专业的朋友推荐的,担心某超大网站卖的书不真,特意来这里注册了账号,就为了买书,只是,这装订质量让我很是怀疑啊,翻页的时候手稍微用了点力,纸张就脱胶,掉了下来。。。我很是震惊!!!现在只希望里面的内容没有错。。。