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

前言(2)

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

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

前言(2)

C#编码规范

本书新版本比较重大的改进之一就是包含了大量C#编码规范,例如第16章中的一个规范如下所示:

规范

要确保相等的对象有相同的散列码。

要确保对象的散列码在一个散列表中永不变化。

要确保散列算法快速产生良好分布的散列码。

要确保散列算法在任何可能的对象状态中的健壮性。

一名知道语法的程序员和一名能因时宜地写出最高效代码的专家的区别,关键就是这些编码规范。专家不仅让代码通过编译,还遵循最佳实践,降低产生bug的概率,并使代码的维护变得更容易。编码规范强调了一些关键原则,开发时务必注意。

代码示例

本书大多数代码都能在公共语言基础结构(Common Language Infrastructure,CLI)的任何实现上运行,其中包括Mono、DNX Core和Microsoft .NET平台。除了在解释只和某些平台有关的重要概念的地方(例如,解释如何正确处理Windows单线程用户界面),我很少使用平台或厂商特有的库。

下面是一个示例代码清单。

代码清单1-17 交换索引占位符和对应的变量

  1. System.Console.WriteLine("Your full name is {1}, {0}",  
  2. firstName, lastName); 

下面简单介绍一下代码格式。

注释以斜体表示。

  1. /* Display a greeting to the console  
  2. using composite formatting. */ 

关键字加粗。

  1. static void Main() 

有的代码被突出显示,是为了指明这些代码与之前列出的有所区别,或是为了演示正文中介绍的概念。

  1. System.Console.Write/* No new line */( 

突出显示的内容可能是一整行,也可能仅仅是一行中的几个字符。

  1. System.Console.WriteLine(  
  2. "Your full name is {0} {1}.", 

不完整的程序清单包含一个省略号,表示无关的代码已省略。

  1. // …? 

在代码清单之后,列出了对应的控制台输出,如下例所示:

输出1-4

  1. >HeyYou.exe  
  2.   Hey you!  
  3.   Enter your first name: Inigo  
  4.   Enter your last name: Montoya 

执行程序时要由用户输入的内容加粗显示。

虽然提供完整的代码示例可以方便地复制到自己的程序中,但这样做会降低学习特定主题的意义。因此,需要自行修改代码示例,然后再把它们集成到自己的程序中。代码示例中最大的问题是省略了像异常处理这样的错误检查。此外,书中的代码示例没有显式地包含using System语句;在所有的例子中,这个语句都是必需的。

请访问Intellitect.com/essentialcsharp和informit.com/mstechseries下载示例代码。此外,通过Github(http://itl.tc/EssentialCSharpSCC)也可以获得示例代码。附录A给出了下载源代码编译工具的操作指南,同时也给出了编译源代码的操作指南。

思维导图

每章开头都有一幅思维导图[5]。作为提纲,它的作用是为读者提供对每章内容的快速参考。下面是一个例子(摘自第5章)。

每一章的主题显示在思维导图的中心,高级主题围绕中心展开。利用思维导图,读者可以方便地搭建自己的知识体系,可以从一个主题出发,更清楚地理解其周边的各个具体概念,避免中途纠缠于一些不相干的枝节问题。

分类解说

根据自己的经验水平,书中特殊的代码块和页面边缘的灰色竖线条和标签可以帮你轻松地找到适合自己的内容。

初学者主题:特别针对入门级程序员提供的定义或解释。

高级主题:可以让有经验的开发者将注意力放在他们最关心的内容上。

标注:用标注框[6]来强调关键原则,使读者对其重要性一目了然。

语言对比:分散在正文中的补充内容,描述了C#和其他语言的关键差异,为熟悉其他语言的读者提供指引。

Begin标签和End标签:页边的标签指示内容对应的C#版本。

本书内容组织

总地说来,软件工程的宗旨就是对复杂性进行管理。本书正是基于这个宗旨来组织内容的。第1章~第4章介绍的是结构化编程,学习了这些内容后,你可以立即开始写一些功能简单的代码。第5章~第9章介绍了C#的面向对象构造,新手应在完全理解了这几章的内容之后,再开始接触本书其余部分更高级的主题。第11章~第13章介绍了更多用于降低复杂性的构造,讲解了当今几乎所有程序都要用到的通用设计模式。在理解了它们之后,你可以更加轻松地理解如何通过反射和特性来实现动态编程。在后续的章节中,将广泛运用反射和特性来实现线程处理和互操作性。

本书最后专门用一章(第21章)来讲述CLI。这一章针对开发平台对C#语言进行描述。之所以要放到最后,是因为它并不是C#特有的,而且不会涉及语法和编程风格问题。不过,本章适合在任何时候阅读,或许最恰当的时机是在阅读了第1章之后。

下面是每一章的内容概要(使用黑体的章号表明那一章的内容在C# 3.0~C# 5.0版本中都有)。

第1章──C#概述:这一章在展示了用C#编写的HelloWorld程序之后,进一步剖析了C#。这应当能使读者熟悉C#程序的“外观和感觉”。这一章提供了让读者编译和调试自己的程序所需的足够多的细节。此外,还简单描述了执行C#程序的上下文及其中间语言(intermediate language,IL)。

第2章──数据类型:任何有用的程序都要处理数据,这一章介绍了C#的两种基本数据类型,即值类型和引用类型,另外还讨论了类型间的转换以及C#对数组的支持。

第3章──操作符和控制流:计算机擅长重复性操作,为了利用计算机的这个能力,需要知道如何在自己的程序中添加循环和条件逻辑。这一章还讨论了C#操作符、数据转换以及预处理指令。

第4章──方法和参数:这一章研究了有关方法及其参数的细节,其中包括通过参数来传值、传引用和返回数据。C# 4.0增加了对默认参数的支持,本章解释了如何使用这种支持。

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

51CTO读书频道二维码


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

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

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

读 书 +更多

人月神话:32周年中文纪念版

在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊