过去20年,很多事情都发生了变化。为了好玩,我有时会拿起我那本2001年的《Microsoft C# Step By Step》第一版,并感慨自己当年的天真无邪。当然,C#当时达到了完美编程语言的巅峰。C#和.NET Framework在开发界引起了轰动,其反响一直持续到今天。现在,非但没有泯然众矣,反而在开发界的地位变得越来越重要。C#和.NET并不像2001年的反对者所叫嚣的那样是一种只适合单一平台的方法,而是逐渐证明自己是一种完整的多平台解决方案——无论你是为Windows、macOS、Linux还是Android构建应用程序。此外,C#和.NET已经证明自己是许多基于云的系统的首选运行库。否则,Azure怎么可能这么火?
配套资源和试读PDF下载: ys168 网盘>> 百度网盘>>
2024.10更新:添加了中文版勘误
过去,大多数常用编程语言只是时不时地更新一下,往往相隔数年。以Fortran为例,会看到名为Fortran 66、Fortran 77、Fortran 90、Fortran 95、Fortran 2003、Fortran 2008和Fortran 2018的标准。这就是过去55年中的七次更新。虽然这种相对缓慢的变化周期有利于稳定性,但也可能导致停滞不前。问题在于,开发人员必须解决的问题的性质变化很快,他们所依赖的工具最好能跟上步伐,这样才能开发出有效的解决方案。Microsoft .NET提供的正是这样一个不断发展的框架,C#也会相应地更新,从而最好地利用平台的优势。所以,和Fortran相比,C#自首次发布以来经历了快速迭代,仅过去五年内就有六个版本问世,2022年甚至会再次发布C#的一个新版本(注,作者说的是C#11。目前,语言和平台甚至已更新到C#13和.NET 9)。C#语言仍然支持20多年前写的代码,但通过不断对语言进行补充和增强,现在能用更优雅的代码和更简洁的构造来创建解决方案。出于这个原因,本书也要定期进行更新,现在已经是第10版了!
下面列出了C#的进化简史:
- C# 1.0于2001年亮相。
- 几年后随着C# 2.0和Visual Studio 2005的问世,语言新增了几个重要特性,包括泛型、迭代器和匿名方法等。
- 随Visual Studio 2008发布的C# 3.0新增了更多特性,包括扩展方法、Lambda表达式以及语言集成查询(Language Integrated Query,LINQ)。
- 2010年发布的C# 4.0继续增强,改善了与其他语言和技术的互操作性。新增特性包括具名参数和可选参数,另外还有dynamic类型(指示语言的“运行时”对对象进行晚期绑定)。在随C# 4.0发布的.NET Framework中,最重要的增补就是“任务并行库”(Task Parallel Library,TPL)。可用TPL构建具有良好伸缩性的应用程序,从而快速和简单地发挥多核处理器的能力。
- C# 5.0通过
async
方法修饰符和await
操作符提供了对异步任务的原生支持。 - C# 6.0是一次增量式升级,添加了许多有利于简化开发的特性,包括字符串插值(再也不需要
String.Format
了)、改进的属性实现方式以及表达式主体方法等。 - C# 7.0~ C# 7.3进一步增强,提高了生产力并移除了C#一些不合时宜的设计。例如,现在属性访问器方法可作为表达式主体成员实现,方法支持以元组形式返回多个值,简化了
out
参数的用法,switch
语句开始支持模式和类型匹配。还有其他许多小的调整,解决了开发人员的众多关切,比如允许写异步Main
方法。 - C# 8.0、C# 9.0和C# 10.0延续这种做法,继续对语言进行增强以提高可读性和帮助开发人员提高生产力。一些主要的新增特性包括
record
类型,可用它来构建不可变的引用类型;扩展了模式匹配,现在能在整个语言中使用这个特性,而非仅能在switch
语句中使用;顶级语句,现在能将C#作为脚本语言使用(不必总是写一个Main
方法);默认接口方法;静态局部函数;异步可清理(asynchronous disposable)类型;以及许多其他特性。所有这些都会在本书讲到。
虽然Microsoft Windows是运行C#应用程序最重要的平台,但现在也可通过.NET运行时在其他操作系统(包括Linux)上运行用C#写的代码。这使程序更容易在多种环境中运行。另外,Windows支持高度交互性的应用程序,它们可以进行数据共享和协作,还可以连接云服务。Windows最引人注目的是对UWP(Universal Windows Platform,通用Windows平台)应用的支持。这种应用设计在任何Windows 10或Windows 11设备上运行,无论这些设备是全功能的桌面系统、笔记本和平板,还是资源有限的智能手机和物联网(IoT)设备。熟悉C#的核心特性后,下一步就是掌握如何开发能在所有这些平台上运行的应用。
云已成为许多系统架构中的一个重要元素——从大型企业应用,到在便携式设备上运行的移动应用——所以我决定在本书最后一章重点讨论这方面的开发。 Visual Studio开发环境使这些特性变得很容易使用,大量新向导和增强显著提升了开发人员的生产力。写作这本书给我带来了许多乐趣,希望你的阅读亦是如此!
常见问题解答:
- 问题:编译时报告错误:CS8370 功能“递归模式”在 C# 7.3 中不可用。请使用 8.0 或更高的语言版本。
解决方案:以4.5节“为switch表达式使用模式匹配”为例,用文本编辑器(例如,VS Code)打开项目文件SwitchStatement.csproj,在<PropertyGroup>
组中添加下面这一行,然后重新加载项目即可。
<LangVersion>8.0</LangVersion>
如图所示:
勘误
279页,class Horse : ILandBound
类定义中的方法名应为NumberOfLegs()
,而不是NumberLegs()
。感谢COCCloveyou。
英文版ISBN:9780137619832
中文版ISBN:9787302617648
Comment on “《Visual C#从入门到精通》 第10版”