编辑推荐

  WORX经典红皮书
  C#经典名著
  畅销17年
  全面升级至第7版
  源代码免费提供下载
  带领无数读者进入IT开发世界
  《C#入门经典(第7版)》的亮点包括:
  ●增加并改进了代码示例。
  ●涵盖C#6和.NET4.6的所有新内容,包括如何创建通用Windows应用程序。
  ●增加了编写云应用程序的示例,并使用AzureSDK创建和访问云资源。
  0.3《C#入门经典(第7版)》结构
  《C#入门经典(第7版)》分为6个部分。
  ●前言:概述《C#入门经典(第7版)》的内容。
  ●OOP语言:介绍C#语言的所有内容,从基础知识到面向对象的技术,一应俱全。
  ●Windows编程:介绍如何用WPF库编写和部署桌面应用程序。
  ●云编程:描述云应用程序的开发和部署,包括WebAPI的创建和使用。
  ●数据访问:介绍如何在应用程序中使用数据,包括存储在硬盘文件中的数据、以XML格式存储的数据和数据库中的数据。
  ●其他技术:讲述使用C#和.NETFramework的一些额外方式,包括WCF和通用Windows应用程序。

内容简介

  C#6和VisualStudio2015编程实战指南
  《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。新版的C#入门经典(第7版)C#6.0&VisualStudio2015全面介绍使用C#6和.NETFramework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用教程从基本的面向对象编程讲起,浓墨重彩地描述初学者常用的工具,不要求读者具有任何编程经验。紧贴实用的示例使用VisualStudio2015中的C#环境,涵盖微软为使C#更好兼容其他编程语言所做的新改进。《C#入门经典(第7版)》呈现微软资深开发人员的专家级建议,将指导初学者立即上手编写Windows和Web应用程序。
  主要内容
  ◆首先讲解编程基础知识,如变量、流控制、面向对象编程、类、函数、集合、比较和转换等
  ◆重点介绍VisualStudio2015中初学者喜欢的C#6开发环境,囊括所有新功能和语言改进
  ◆包括云和Windows编程中级内容,涵盖数据库和XML
  ◆揭密错误处理技术和调试过程
  ◆以专家撰写的分步指南为特色,指导初学者在真实编程环境中编写有用的代码

作者简介

  BenjaminPerkins,是Microsoft的资深“技术支持”工程师,一位狂热的C#程序员,在企业级IT解决方案领域拥有15年工作经验。

  JacobVibeHammer,是Terma的一名软件工程师,合著编写过多本.NET图书。

  JonD.Reid,是IFS研发团队(www.ifsworld.com)的产品解决方案经理,负责为Microsoft环境开发C#程序。

目录

第Ⅰ部分OOP语言
第1章C#简介3
1.1.NETFramework的含义3
1.1.1.NETFramework的内容4
1.1.2使用.NETFramework编写应用程序4
1.2C#的含义7
1.2.1用C#能编写什么样的应用程序8
1.2.2《C#入门经典(第7版)》中的C#8
1.3VisualStudio20158
1.3.1VisualStudioExpress2015产品9
1.3.2解决方案9
1.4本章要点9
第2章编写C#程序11
2.1VisualStudio2015开发环境12
2.2控制台应用程序14
2.2.1SolutionExplorer窗口16
2.2.2Properties窗口18
2.2.3ErrorList窗口18
2.3桌面应用程序19
2.4本章要点22
第3章变量和表达式23
3.1C#的基本语法24
3.2C#控制台应用程序的基本结构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.2if语句48
4.2.3switch语句51
4.3循环54
4.3.1do循环54
4.3.2while循环57
4.3.3for循环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.3Main()函数104
6.4结构函数106
6.5函数的重载107
6.6委托109
6.7练习111
6.8本章要点112
第7章调试和错误处理113
7.1VisualStudio中的调试114
7.1.1非中断(正常)模式下的调试114
7.1.2中断模式下的调试121
7.2错误处理127
7.2.1try...catch...finally128
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.2OOP技术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桌面应用程序中的OOP150
8.4练习153
8.5本章要点154
第9章定义类155
9.1C#中的类定义155
9.2System.Object160
9.3构造函数和析构函数161
9.4VisualStudio中的OOP工具166
9.4.1ClassView窗口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.7CallHierarchy窗口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键控集合和IDictionary224
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.2as运算符255
11.4练习256
11.5本章要点257
第12章泛型259
12.1泛型的含义259
12.2使用泛型261
12.2.1可空类型261
12.2.2System.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扩展和使用CardLib312
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.11Lambda表达式344
13.11.1复习匿名方法344
13.11.2把Lambda表达式用于匿名方法345
13.11.3Lambda表达式的参数349
13.11.4Lambda表达式的语句体349
13.11.5Lambda表达式用作委托和表达式树350
13.11.6Lambda表达式和集合351
13.12练习354
13.13本章要点355
第Ⅱ部分Windows编程
第14章基本桌面编程359
14.1XAML360
14.1.1关注点分离360
14.1.2XAML基础知识360
14.2动手实践363
14.2.1WPF控件363
14.2.2属性364
14.2.3事件368
14.3控件布局372
14.3.1堆叠顺序373
14.3.2对齐、边距、填充和尺寸373
14.3.3Border控件374
14.3.4Canvas控件374
14.3.5DockPanel控件375
14.3.6StackPanel控件377
14.3.7WrapPanel控件378
14.3.8Grid控件379
14.4游戏客户端381
14.4.1About窗口382
14.4.2Options窗口386
14.4.3数据绑定394
14.4.4使用ListBox控件启动游戏399
14.5练习403
14.6本章要点403
第15章高级桌面编程405

前言/序言

  C#是Microsoft于2000年7月推出.NETFramework的第1版时提供的一种全新语言。C#从那时起迅速流行开来,成为使用.NETFramework的桌面、Web和云开发人员无可争议的选择。他们喜欢C#的一个原因是其继承自C/C++的简洁明了的语法,这种语法简化了以前给程序员带来困扰的一些问题。尽管做了这些简化,但C#仍保持了C++原有的功能,所以现在没理由不从C++转向C#。C#语言并不难,也非常适合学习基本编程技术。易于学习,再加上.NETFramework的功能,使C#成为开始你编程生涯的绝佳方式。
  C#的最新版本C#6是.NETFramework4.6的一部分,它建立在已有的成功基础之上,还添加了一些更吸引人的功能。VisualStudio的最新版本VisualStudio2015和开发工具的VisualStudioExpress/Community2015系列也有许多变化和改进,这大大简化了编程工作,显著提高了效率。
  《C#入门经典(第7版)》将全面介绍C#编程的所有知识,从该语言本身一直到桌面编程和云编程,再到数据源的使用,最后是一些新的高级技术。我们还将学习VisualStudio2015的功能和利用它开发应用程序的各种方式。
  《C#入门经典(第7版)》文笔优美流畅,阐述清晰,每一章都以前面章节的内容为基础,便于读者掌握高级技术。每个概念都会根据需要来介绍和讨论,而不会突然冒出某个技术术语来妨碍读者的阅读和理解。《C#入门经典(第7版)》尽量减少使用的技术术语数量,但如有必要,将根据上下文进行正确的定义和布置。
  《C#入门经典(第7版)》作者都是各自领域的专家,都是C#语言和.NETFramework的爱好者,没人比他们更有资格讲授C#了,他们将在你掌握从基本规则到高级技术的过程中为你保驾护航。除了基础知识外,《C#入门经典(第7版)》还有许多有益的提示、练习、完全成熟的示例代码(可从p2p.wrox.com下载),在你的职业生涯中一定会反复用到它们。
  《C#入门经典(第7版)》将毫无保留地传授这些知识,希望读者能通过阅读《C#入门经典(第7版)》成为最优秀的程序员。
  0.1《C#入门经典(第7版)》读者对象
  《C#入门经典(第7版)》面向想学习如何使用.NETFramework编写C#程序的所有人。《C#入门经典(第7版)》针对的是想要通过学习一种干净、现代、优雅的编程语言来掌握程序设计的完完全全的初学者。但是,对于熟悉其他语言、想要探索.NET平台的人们,以及想要了解.NET使用的旗舰语言的.NET开发人员,《C#入门经典(第7版)》同样有用。
  0.2《C#入门经典(第7版)》内容
  《C#入门经典(第7版)》前面的章节介绍C#语言本身,读者不需要具备任何编程经验。以前对其他语言有一定了解的开发人员,会觉得这些章节的内容非常熟悉。C#语法的许多方面都与其他语言相同,许多结构对所有的编程语言来说都是相通的(例如,循环和分支结构)。但是,即使是有经验的程序员也可以通过这些章节理解此类技术应用于C#的特征,从而从中获益。
  如果读者是编程新手,就应从头开始学习,了解基本的编程概念,并熟悉C#和支持C#的.NET平台。如果读者对.NETFramework比较陌生,但知道如何编程,就应阅读第1章,然后快速跳读后面几章,这样就能掌握C#语言的应用方式了。如果读者知道如何编程,但以前从未接触过面向对象的编程语言,就应从第8章开始阅读以后的章节。
  如果读者对C#语言比较了解,就可以集中精力学习那些详细论述最新.NETFramework和C#语言开发的章节,尤其是集合、泛型和C#语言的新增内容(第11章~第13章),或者完全跳过《C#入门经典(第7版)》第I部分,从第14章开始学习。
  《C#入门经典(第7版)》章节的编排方式可以达到两个目的:可以按顺序阅读这些章节,将其视为C#语言的一个完整教程;还可以按照需要深入学习这些章节,将其作为一本参考资料。
  除核心内容外,从第3章开始,每章末尾还包含一组习题,完成这些习题有助于读者理解所学的内容。习题包括简单的选择题、判断题以及需要修改或建立应用程序的较难问题。附录A给出了全部习题的答案。
  《C#入门经典(第7版)》特别注重与C#6、.NET4.6的一致性。每一章都进行了彻底的检查,删掉了不太相关的内容,增加了新材料。所有代码都在最新版本的开发工具上进行了测试,所有屏幕截图都在Windows8.1/10上重新截取,以提供最新的窗口和对话框。
  《C#入门经典(第7版)》的亮点包括:
  ●增加并改进了代码示例。
  ●涵盖C#6和.NET4.6的所有新内容,包括如何创建通用Windows应用程序。
  ●增加了编写云应用程序的示例,并使用AzureSDK创建和访问云资源。
  0.3《C#入门经典(第7版)》结构
  《C#入门经典(第7版)》分为6个部分。
  ●前言:概述《C#入门经典(第7版)》的内容。
  ●OOP语言:介绍C#语言的所有内容,从基础知识到面向对象的技术,一应俱全。
  ●Windows编程:介绍如何用WPF库编写和部署桌面应用程序。
  ●云编程:描述云应用程序的开发和部署,包括WebAPI的创建和使用。
  ●数据访问:介绍如何在应用程序中使用数据,包括存储在硬盘文件中的数据、以XML格式存储的数据和数据库中的数据。
  ●其他技术:讲述使用C#和.NETFramework的一些额外方式,包括WCF和通用Windows应用程序。
  下面介绍《C#入门经典(第7版)》5个重要部分中的章节。
  0.3.1OOP语言(第1章~第13章)
  第1章介绍C#及其与.NET的关系,了解在这个环境下编程的基础知识,以及VisualStudio2015(VS)与它的关系。
  第2章开始介绍如何编写C#应用程序,学习C#的语法,并将C#和示例命令行、Windows应用程序结合起来使用。这些示例将说明C#如何快速轻松地启动和运行,并附带介绍VS开发环境以及《C#入门经典(第7版)》将要使用的基本窗口和工具。
  接着将学习C#的基础知识。第3章介绍变量的含义以及如何操纵它们。第4章将用流程控制(循环和分支)改进应用程序的结构,第5章介绍一些高级变量类型,如数组。第6章开始以函数形式封装代码,这样就更易于执行重复操作,使代码更容易让人理解。
  从第7章开始将运用C#语言的基础知识,调试应用程序。这包括在运行应用程序时输出跟踪信息,使用VS查找错误,在强大的调试环境中找出解决问题的办法。
  第8章将学习面向对象编程(Object-OrientedProgramming,OOP)。首先了解这个术语的含义,回答“什么是对象”?OOP初看起来是较难的问题。我们将用一整章的篇幅来介绍它,解释对象的强大之处。直到该章的最后才会真正使用C#代码。
  第9章将理论知识应用于实践,开始在C#应用程序中使用OOP时,这才体现出C#的真正威力。在第9章介绍如何定义类和接口之后,第10章将探讨类成员(包括字段、属性和方法),在这一章的最后将开始创建一个扑克牌游戏,这个游戏将在几章中开发完成,它非常有助于理解OOP。
  学习了OOP在C#中的工作原理后,第11章将介绍几种常见的OOP场景,包括处理对象集合、比较和转换对象。第12章讨论.NET2.0中引入的一个非常有用的C#特性——泛型,利用它可以创建非常灵活的类。第13章通过一些其他技术(主要是事件,它在Windows编程中非常重要)继续讨论C#语言和OOP。最后介绍C#在3.0、4、5和6版本中引入的新特性。
  0.3.2Windows编程(第14章和第15章)
  第14章开始介绍Windows编程概念,理解在VS中如何实现Windows编程。该章主要关注如何使用WPF以图形化方式构建桌面应用程序,以及用最少的时间和精力创建高级桌面应用程序。你将首先学习WPF编程的基础知识,然后在该章和第15章逐渐拓展相关知识。第15章介绍在应用程序中如何使用.NETFramework提供的丰富控件。
  0.3.3云编程(第16章和第17章)
  第16章首先描述云编程,再讨论云优化堆栈。云环境不同于传统的程序编码方式,所以讨论、定义了几个云编程模式。为完成这一章,需要一个免费的Azure账户,以便创建一个AppServicesWebApp,然后使用AzureSDK和C#,在ASP.NET4.6Web应用程序中创建和访问存储账户。
  第17章将学习如何创建ASP.NETWebAPI,并部署到云中,然后在类似的ASP.NET4.6Web应用程序中使用WebAPI。这一章最后讨论云中两个最有价值的特性:硬件资源的缩放和最优利用方式。
  0.3.4数据访问(第18章~第21章)
  第18章介绍应用程序如何将数据保存到磁盘以及如何检索磁盘上的数据(作为简单的文本文件或者更复杂的数据表示方式)。该章还将讨论如何压缩数据,如何监视和处理文件系统的变化。
  第19章学习数据交换的事实标准XML,简要论述JSON格式。之前的章节接触过XML几次,而该章将讨论XML的基本规则,论述XML的所有功能。
  该部分其余章节介绍LINQ(这是内置于.NETFramework最新版本中的查询语言)。第20章简要介绍LINQ。第21章讨论如何使用LINQ访问数据库和其他数据。
  0.3.5其他技术(第22章和第23章)
  第22章简要介绍WindowsCommunicationFoundation(WCF),它为在企业级以编程方式跨本地网络和Interent访问信息和功能提供了许多工具。该章将介绍如何以平台无关的方式使用WCF,向Web应用程序和桌面应用程序公开复杂的数据和功能。
  第23章展示如何创建通用Windows应用程序,这是Windows新增的。本章建立在第14和第15章的基础上,介绍如何创建可以运行在所有Windows平台上的Windows应用程序。
  0.4使用《C#入门经典(第7版)》的要求
  《C#入门经典(第7版)》中C#和.NETFramework的代码和描述都适用于C#6和.NET4.6。除了Framework之外,不需要其他组件就可以理解《C#入门经典(第7版)》的这个方面,但许多示例都需要使用开发工具。《C#入门经典(第7版)》将VisualStudio2015作为主要开发工具,但是,如果没有安装此工具,可以使用免费的VisualStudioExpress/Community2015产品系列。在《C#入门经典(第7版)》的第I部分,可使用VisualStudioExpress/Community2012forWindowsDesktop来创建桌面和控制台应用程序。对于其余章节,可使用VisualStudioExpress/Community2015forWindows10创建通用Windows应用程序,使用VisualStudioExpress/Community2015forCloud创建云应用程序,并在需要访问数据库的应用程序中使用SQLServerExpress2014。一些功能只能在VisualStudio2015中使用,但这不会妨碍练习《C#入门经典(第7版)》的示例。
  0.5《C#入门经典(第7版)》约定
  为了帮助读者在阅读《C#入门经典(第7版)》的过程中获取最多信息,并随时了解当前处理的事项,《C#入门经典(第7版)》使用了许多约定。
  《C#入门经典(第7版)》通过两种方式来显示代码:
  ●对于大多数代码示例,使用没有突出显示的等宽字体来表示。
  ●对在当前上下文中特别重要的代码,用粗体字来强调显示。
  0.6勘误表
  尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在《C#入门经典(第7版)》中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
  请给wkservice@vip.163.com发电子邮件,我们就会检查你的反馈信息,如果是正确的,我们将在《C#入门经典(第7版)》的后续版本中采用。
  要在网站上找到《C#入门经典(第7版)》英文版的勘误表,通过Search工具或书名列表查找《C#入门经典(第7版)》,然后在《C#入门经典(第7版)》的细目页面上,单击BookErrata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每《C#入门经典(第7版)》的勘误表。
  0.7p2p.wrox
  要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于你张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。
  在http://p2p.wrox上,有许多不同的论坛,它们不仅有助于阅读《C#入门经典(第7版)》,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:
  (1)进入p2p.wrox,单击Register链接。
  (2)阅读使用协议,并单击Agree按钮。
  (3)填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。
  (4)你会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。
  提示:
  不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。
  加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的SubscribetothisForum图标。
  关于使用WroxP2P的更多信息,可阅读P2PFAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。
  0.8源代码
  ……


其他推荐