|
|
51CTO旗下网站
|
|
移动端

前言(1)

《C# 6.0本质论(第5版)》本书是一本编程语言参考书,遵循核心C# 6.0 语言规范,适合对C#感兴趣的各个层次的读者。无论对初学者还是具有一定编程经验的开发者,本书都是一本很有价值的参考书。本节为前言。

作者:周靖/庞燕 译来源:人民邮电出版社|2017-07-21 14:24

前言(1)

在软件工程的发展历史中,用于编写计算机程序的方法经历了几次范型的重大转变。每一种范型都是以前一种为基础的,其宗旨都是增强代码的组织,并降低复杂性。本书将带领你体验类似这样的范型转变过程。

本书开始的几章指导你学习顺序编程结构。在这种编程结构中,语句是按照执行的顺序来编写的。这种结构的问题在于,随着需求的增加,复杂性会按指数级增长。为了降低复杂性,将代码块转变成方法,产生了结构化编程模型。在这种模型中,可以从一个程序中的多个位置调用同一个代码块,而不必在程序中重复这些代码。然而,即使有这种结构,不断增长的程序还是会很快变得臃肿不堪,需要进行进一步抽象。所以,人们又提出了面向对象编程的概念,以期改善这种情况,这将在第5章进行讨论。在此之后,你将继续学习其他编程方法,比如基于接口的编程和LINQ(以及它促使集合API发生的改变),并最终学习通过特性进行初级的声明式编程[1](第17章)。

本书有以下3种主要职能。

全面讲述C#语言,其内容已经远远超过了一本简单的教程,为你进行高效率软件开发打下坚实的基础。

对于已经熟悉了C#的读者,本书探讨了一些较为复杂的编程范型,并深入讨论了语言最新版本(C# 6.0和.NET 4.6)的新功能。

它是你永远的案头参考——即便在你精通了这种语言之后。

成功学习C#的关键在于,要尽可能快地开始编程。不要等自己成为一名理论方面的“专家”之后,才开始写代码。所以,不要犹豫,马上开始写程序吧。作为迭代开发[2]思想的笃信者,我希望即使是一名刚开始学习编程的新手,在学到本书第2章末尾的时候,也能动手开始写基本的C#代码。

有许多主题都没有在本书中进行讨论。你在本书找不到ASP.NET、Entity Framework、智能客户端开发(如WPF)以及分布式编程等主题。虽然这些主题与.NET Framework有关,但它们都值得用专门的书分专题进行讲述。幸运的是对于这些主题,都已经有丰富的图书供读者选择了。本书的重点在于C#以及基类库中的类型。读完本书之后,你在上述任何领域继续深入学习都会有游刃有余的感觉。

本书面向的读者

写作本书时,我面临的一个挑战是如何在持续吸引高级开发人员眼球的同时,不因使用assembly、link、chain、thread和fusion等术语而打击初学者的信心,否则许多人会误以为这是一本讲冶金而不是程序设计的书[3]。本书主要读者是已经有一定编程经验,并想多学一种语言来“傍身”的开发者。但我还是认真编排了本书的内容,以便使各种层次的开发者都能够从中获益。

初学者:假如你是编程新手,本书将帮助你从入门级程序员过渡成为C#开发者,消除以后在面临任何C#编程任务时的害怕心理。本书不仅要教会你语法,还要教你养成良好的编程习惯,为将来的编程生涯打下良好基础。

熟悉结构化编程的程序员:学习外语最好的方法就是“沉浸法”[4]。类似地,学习一门计算机语言最好的方法就是在动手中学习,而不是等熟知了它的所有“理论”之后再动手。基于这个前提,本书最开始的内容是那些熟悉结构化编程的开发者很容易上手的。到第4章结束时,这些开发者应该可以开始写基本的控制流程序。然而,要成为真正的C#开发者,记住语法只是第一步。为了从简单程序过渡到企业级开发,C#开发者必须熟练地从对象及其关系的角度来思考问题。为此,第5章的“初学者主题”开始介绍类和面向对象开发。对于C、COBOL和FORTRAN等结构化编程语言,虽然它们仍在发挥作用,但作用会越来越小。所以,软件工程师们应该逐渐开始了解面向对象开发。C#是进行这一思维模式转变的理想语言,因为它本来就是基于“面向对象开发”这一中心思想来设计的。

熟悉“基于对象”和“面向对象”理念的开发者:C++和Java程序员以及许多有经验的Visual Basic程序员都可归于此类。对于分号和大括号,他们可是一点儿都不陌生!简单浏览一下第1章的代码,你会发现,从核心上讲,C#类似于你熟知的C和C++风格的语言。

C#专家:对于已经精通C#的人,本书可供你参考不太常见的语法。此外,对于在其他地方强调较少的一些语言细节以及微妙之处,我提出了自己的见解。最重要的是,本书提供了编写可靠和易维护代码的规范及模式。你教别人学C#时,本书也颇有助益。随着C# 3.0、C# 4.0、C# 5.0和C# 6.0的出现,一些最重要的增强包括:

隐式类型的变量(参见第2章);

扩展方法(参见第5章);

分部方法(参见第5章);

匿名类型(参见第11章);

泛型(参见第11章);

Lambda语句和表达式(参见第12章);

表达式树(参见第12章);

标准查询操作符(参见第14章);

查询表达式(参见第15章);

动态编程(参见第17章);

用任务并行库和async进行多线程编程(参见第18章);

用PLINQ进行并行查询处理(参见第18章);

并发集合(第19章)。

考虑到许多人还不熟悉这些主题,因此本书围绕它们展开了详细的讨论。涉及高级C#开发的还有“指针”这一主题,该主题将在第21章讨论。通常,就算是有经验的C#开发者,也未必能很透彻地理解这一主题。

本书特色

本书是一本语言参考书,它遵循核心C#6.0 语言规范。为了帮助读者理解各种C#构造,书中用大量例子演示了每一种特性,而且为每个概念都提供了相应的规范和最佳实践,以确保代码能顺利编译、避免留下隐患,并获得最佳的可维护性。

为了增强可读性,所有代码均进行了特殊格式处理,而且每一章的内容都使用思维导图来概括。



喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java网络编程精解

本书结合大量的典型实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK 1.5版本,书中内容包括:Java网络编程的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊