C#本质论(第3版)(全新升级版,涵盖C# 4.0)
基本信息
- 作者: (美)Mark Michaelis
- 译者: 周靖
- 丛书名: 图灵程序设计丛书 C#与.NET系列
- 出版社:人民邮电出版社
- ISBN:9787115233837
- 上架时间:2010-8-27
- 出版日期:2010 年9月
- 开本:16开
- 页码:694
- 版次:3-1
- 所属分类:
计算机 > 软件与程序设计 > C#
编辑推荐
全新升级版,涵盖C# 4.0
内容全面翔实,讲解精彩权威
C#入门进阶的首选之作
内容简介回到顶部↑
《c#本质论(第3版)》是一部好评如潮的语言参考书,作者用一种非常合理的方式来组织《c#本质论(第3版)》的内容,由浅人深地介绍了c#语言的各个方面。全书共包括21章及6个附录,每章开头的“思维导图”指明了本章要讨论的主题,以及各个主题之间的层次关系。书中所包含的丰富的示例代码和精要的语言比较,都有助于读者理解c#语言。《c#本质论(第3版)》首先介绍了c#语言的基础知识,随后深人讲解了泛型、迭代器、反射、线程、互操作性和语言集成查询(linq)等高级主题,还涉及了动态编程、使用tpl进行多线程编程以及用linq进行并行查询处理等c#4.0新增内容,此外还介绍了与这些内容相关的隐式类型变量、扩展方法、分部方法、lambda语句和表达式、标准查询操作符和查询表达式以及并发集合等内容。
《c#本质论(第3版)》适合对c#感兴趣的各层次读者,无论对初学者还是c#专家,《c#本质论(第3版)》都是一本很有价值的参考书。
作译者回到顶部↑
目录回到顶部↑
第1章 c#概述
1.1 hello world
1.2 c#语法基础
1.2.1 c#关键字
1.2.2 类型定义
1.2.3 main
1.2.4 语句和语句分隔符
1.2.5 空白
1.3 使用变量
1.3.1 数据类型
1.3.2 变量的声明
1.3.3 变量的赋值
1.3.4 变量的使用
1.4 控制台输入和输出
1.4.1 从控制台获取输入
1.4.2 将输出写入控制台
1.5 注释
1.6 托管执行和公共语言基础结构
1.7 c#和net版本
前言回到顶部↑
在软件工程的发展历史中,用于编写计算机程序的方法经历了几次思维模式的重大转变。每一种思维模式都是以前一种为基础的,其宗旨都是增强代码的组织,并降低复杂性。本书将带领你体验相同的思维模式转变过程。
本书开始的几章指导你学习顺序编程结构(sequential programming structure)。在这种编程结构中,语句是按照执行顺序来写的。这种结构的问题在于,随着需求的增加,复杂性也将呈指数级增加。为了降低复杂性,将代码块转变成方法,产生了结构化编程模型(structured programming model)。在这种模型中,可以从一个程序中的多个位置调用同一个代码块,而不必在程序中重复这些代码。然而,即使有这种结构,程序还是会很快变得臃肿不堪,需要进行进一步抽象。所以,在此基础上,人们又提出了面向对象编程的概念,这将在第5章进行讨论。在此之后,你将继续学习其他编程方法,比如基于接口的编程和LINQ(以及它促使集合API发生的改变),并最终学习通过attribute进行初级的声明性编程(第17章)。
本书有以下3个主要职能。
·全面讲述C#语言,其内容已经远远超过了一本简单的教程,为你进行高效率软件开发打下坚实的基础。
·对于已经熟悉了C#的读者,本书探讨了一些较为复杂的编程思想,并深入讨论了在这种语言的最新版本(C# 3.0和.NET 3.5)中引入的特性。
·它是你永远的案头参考——即便在你精通了这种语言之后。
成功学习C#的关键在于,要尽可能快地开始编程。不要等自己成为一名理论方面的“专家”之后,才开始写代码。所以,不要犹豫,马上开始写程序吧。作为迭代开发 思想的追随者,我希望即使是一名刚开始学习编程的新手,在学到本书第2章末尾的时候,也能动手开始写基本的C#代码。
有许多主题都没有在本书中进行讨论。你在本书找不到ASP.NET、ADO.NET、智能客户端开发以及分布式编程等主题。虽然这些主题与.NET Framework有关,但它们都值得用专门的书、分专题进行讲述。幸运的是,已经有丰富的图书供读者选择。不过,在读完本书之后,你在上述任何领域继续深入学习都会有游刃有余的感觉。本书的重点在于C#以及基类库中的类型。
本书读者对象
写作本书时,我面临的一个挑战是如何在持续吸引高级开发人员眼球的同时,不因使用类似assembly、link、chain、thread和fusion的字眼而打击初学者的信心,否则许多人会认为这是一本冶金方面的书,而不是讲程序设计的。 本书的主要读者是已经有一定编程经验,并想多学一种语言来“傍身”的开发者。但我还是小心地编排了本书的内容,使其对于各种层次的开发者来说,都有足够大的价值。
·初学者:假如你是一名编程新手,本书将帮助你从入门级的程序员过渡成为一名C#开发者,消除对以后摆在你面前的任何C#编程任务的害怕心理。本书不仅要教会你语法,还要教你养成良好的编程习惯,为你将来的编程生涯打下良好的基础。
·熟悉结构化编程的程序员:学习外语最好的方法就是“沉浸法” 。类似地,学习一门计算机语言最好的方法就是在动手中学习,而不是等熟知了它的所有“理论”之后再动手。基于这个前提,本书最开始的内容是那些熟悉结构化编程的开发者很容易上手的。到第4章结束时,这些开发者应该可以开始写基本的控制流程序。然而,要成为一名真正的C#开发者,记住语法只是第一步。为了从简单程序过渡到企业级开发,C#开发者必须熟练地从对象及其关系的角度来思考问题。为此,第5章的“初学者主题”开始介绍类和面向对象开发。对于C、COBOL和FORTRAN等结构化编程语言来说,虽然它们仍在发挥作用,但作用会越来越小。所以,软件工程师们应该逐渐开始了解面向对象开发。C#是进行这一思维模式转变的理想语言,因为它本来就是基于“面向对象开发”这一中心思想来设计的。
·熟悉“基于对象”和“面向对象”理念的开发者:C++和Java程序员以及许多有经验的Visual Basic程序员都可归于此类。对于分号和大括号,他们可是一点儿都不陌生!简单浏览一下第1章的代码,你会发现,从核心上讲,C#类似于你熟知的C和C++风格的语言。
·C#专家:对于已经精通C#的人,本书可供你参考不太常见的语法。此外,对于在其他地方强调较少的一些语言细节以及微妙之处,我提出了自己的见解。最重要的是,本书提供了编写可靠和易维护代码的指导原则及模式。你教别人学C#时,本书也颇有助益。C# 3.0的一些最重要的增强包括:
·隐式类型的变量(参见第2章);
·扩展方法(参见第5章);
·分部方法(参见第5章);
·匿名类型(参见第11章);
·泛型(参见第11章);
·Lambda表达式(参见第12章);
本书开始的几章指导你学习顺序编程结构(sequential programming structure)。在这种编程结构中,语句是按照执行顺序来写的。这种结构的问题在于,随着需求的增加,复杂性也将呈指数级增加。为了降低复杂性,将代码块转变成方法,产生了结构化编程模型(structured programming model)。在这种模型中,可以从一个程序中的多个位置调用同一个代码块,而不必在程序中重复这些代码。然而,即使有这种结构,程序还是会很快变得臃肿不堪,需要进行进一步抽象。所以,在此基础上,人们又提出了面向对象编程的概念,这将在第5章进行讨论。在此之后,你将继续学习其他编程方法,比如基于接口的编程和LINQ(以及它促使集合API发生的改变),并最终学习通过attribute进行初级的声明性编程(第17章)。
本书有以下3个主要职能。
·全面讲述C#语言,其内容已经远远超过了一本简单的教程,为你进行高效率软件开发打下坚实的基础。
·对于已经熟悉了C#的读者,本书探讨了一些较为复杂的编程思想,并深入讨论了在这种语言的最新版本(C# 3.0和.NET 3.5)中引入的特性。
·它是你永远的案头参考——即便在你精通了这种语言之后。
成功学习C#的关键在于,要尽可能快地开始编程。不要等自己成为一名理论方面的“专家”之后,才开始写代码。所以,不要犹豫,马上开始写程序吧。作为迭代开发 思想的追随者,我希望即使是一名刚开始学习编程的新手,在学到本书第2章末尾的时候,也能动手开始写基本的C#代码。
有许多主题都没有在本书中进行讨论。你在本书找不到ASP.NET、ADO.NET、智能客户端开发以及分布式编程等主题。虽然这些主题与.NET Framework有关,但它们都值得用专门的书、分专题进行讲述。幸运的是,已经有丰富的图书供读者选择。不过,在读完本书之后,你在上述任何领域继续深入学习都会有游刃有余的感觉。本书的重点在于C#以及基类库中的类型。
本书读者对象
写作本书时,我面临的一个挑战是如何在持续吸引高级开发人员眼球的同时,不因使用类似assembly、link、chain、thread和fusion的字眼而打击初学者的信心,否则许多人会认为这是一本冶金方面的书,而不是讲程序设计的。 本书的主要读者是已经有一定编程经验,并想多学一种语言来“傍身”的开发者。但我还是小心地编排了本书的内容,使其对于各种层次的开发者来说,都有足够大的价值。
·初学者:假如你是一名编程新手,本书将帮助你从入门级的程序员过渡成为一名C#开发者,消除对以后摆在你面前的任何C#编程任务的害怕心理。本书不仅要教会你语法,还要教你养成良好的编程习惯,为你将来的编程生涯打下良好的基础。
·熟悉结构化编程的程序员:学习外语最好的方法就是“沉浸法” 。类似地,学习一门计算机语言最好的方法就是在动手中学习,而不是等熟知了它的所有“理论”之后再动手。基于这个前提,本书最开始的内容是那些熟悉结构化编程的开发者很容易上手的。到第4章结束时,这些开发者应该可以开始写基本的控制流程序。然而,要成为一名真正的C#开发者,记住语法只是第一步。为了从简单程序过渡到企业级开发,C#开发者必须熟练地从对象及其关系的角度来思考问题。为此,第5章的“初学者主题”开始介绍类和面向对象开发。对于C、COBOL和FORTRAN等结构化编程语言来说,虽然它们仍在发挥作用,但作用会越来越小。所以,软件工程师们应该逐渐开始了解面向对象开发。C#是进行这一思维模式转变的理想语言,因为它本来就是基于“面向对象开发”这一中心思想来设计的。
·熟悉“基于对象”和“面向对象”理念的开发者:C++和Java程序员以及许多有经验的Visual Basic程序员都可归于此类。对于分号和大括号,他们可是一点儿都不陌生!简单浏览一下第1章的代码,你会发现,从核心上讲,C#类似于你熟知的C和C++风格的语言。
·C#专家:对于已经精通C#的人,本书可供你参考不太常见的语法。此外,对于在其他地方强调较少的一些语言细节以及微妙之处,我提出了自己的见解。最重要的是,本书提供了编写可靠和易维护代码的指导原则及模式。你教别人学C#时,本书也颇有助益。C# 3.0的一些最重要的增强包括:
·隐式类型的变量(参见第2章);
·扩展方法(参见第5章);
·分部方法(参见第5章);
·匿名类型(参见第11章);
·泛型(参见第11章);
·Lambda表达式(参见第12章);
序言回到顶部↑
Mark Michaelis的这本C#语言著作已成为开发人员的一本标准参考书。针对世界上最流行的计算机语言之一,本书第3版提供了一份包罗万象的、精彩纷呈的指南。在本书以前版本建立的良好基础上,Mark添加了新的章节来讲解C#和.NET Framework的最新功能。
本书最重要的两项增补内容是用于并行编程的最新工具,以及C#4.0新增的动态功能。利用新增的动态功能,C#语言允许开发者访问Python和Ruby这样的后期绑定语言。为COM Interop提供的增强支持允许开发人员以一种直观且易于使用的语法访问Microsoft Office,该语法使得这种工具也易于使用。Mark对这些重要主题的精彩讲述,并连同他对并行开发最新进展的权威解释,极大地增加了本书的“含金量”。如果C#开发人员想要磨砺他们的技能,并掌握C#语言最好和最关键的部分,本书就是必读的。
作为C#团队的社区项目经理(Commtmity Program Manager),我的职责就是随时跟进社区的需求。我经常都能听到这样的抱怨:“微软的新技术太多了,简直让人应接不暇。我需要阅读详细解释这种技术的文档,而且我希望这些文档很容易看懂。”对于每一名希望了解微软最新技术的C#开发者,Mark Michaelis都是他们最为可靠的“单人解决方案”。
第一次与Mark见面是在华盛顿州雷德蒙德市,那是2006年夏天的一个清新、阳光明媚的早上。我喜欢晚睡,但我已被提前告知,Mark是一位非常积极的社区成员。所以,那天我不得不起得很早去见他。幸好我早起去见他了!时过多年,那天早上他给我留下的深刻印象至今依然记忆犹新。
Mark是一个高个子的运动员,来自南非,说一口清楚、流利的英语,有一点口音,不过相信大多数美国人都分辨不出其中的区别。他是铁人三项的运动员,有着从事那种运动的人特有的精干、活跃的外表。虽然表面上乐呵呵的,但他做起事情来却显得非常老练。给人的感觉就是他有一种特殊的本事,能在有限的时间里安排尽可能多的活动。
Mark经常要到微软总部来参加有关未来技术的一些研讨会,或者就团队的一些未来计划提供咨询。从华盛顿州斯波堪市飞到这里,Mark有一个清楚的日程表。他知道自己在Microsoft总部的职责,他在那里会将全部身心都放到工作上,而在工作结束后又会风尘仆仆地赶回斯波堪与家人团聚。有时,他能抽出一些时间来和我匆匆见上一面,而每次会面都让我感到高兴。他是一个乐观、精力充沛的家伙,对微软开发的新技术或程序总能提出一些令人振奋的见解。
通过以上对Mark的简单描述,相信你对本书的内容已经心中有数了。这是一本主题鲜明的书,结构提纲非常合理,而且通篇文字都简洁流畅,没有任何废话。Mark着意挑选了需要详尽解释的核心语言部分,并用他平时说话的方式讲出来——表达清楚、有血有肉,而且丝毫没有居高临下的口吻。Mark知道读者想要听什么,而他也做到了知无不言、言无不尽。
Mark不光懂C#,还懂英语。他知道如何正确地造句,如何把他的思想灌注到看似普通的段落和小节中,以及如何引入和总结主题。他善于用清楚且易于理解的方式来解释一个复杂的主题。Mark这本书的第一版我是逐页看过的,当时全神贯注地阅读,只花了我几个晚上的时间。和最新版本一样,整个阅读体验是令人愉快和满足的。Mark精心选择了要讲述的主题,并用尽可能简单的话来解释它们。他知道哪些应该包括进来,哪些可以暂时放在一边。如果他想探讨一个高级主题,就会非常贴心地把它同书的其余部分隔开。他从不炫耀,一直都以读者的感受为重。
在本书的这一版中,一个相当重要的主题就是LINQ。对于许多开发者来说,LINQ所采用的说明性编程风格属于一种全新的技术,需要为之发展出一套新的编程习惯和新的思维方式。
C#3.0引入了几项支持LtNQ的新特性。本书这一版的主要目标之一就是详细讨论这些特性。对LINQ及其关联技术进行解释绝不是一项轻松的任务,Mark发挥了其作家兼教师职业的特长,使这些主题尽可能地清楚和容易理解。
为了理解LINQ而需掌握的所有核心技术都在本书得到了精心的解释,其中包括:
·分部方法
·自动属性
·对象初始化器
·集合初始化器
·匿名类型
·隐式局部变量(var)
·Lambda
·扩展方法
·表达式树
本书最重要的两项增补内容是用于并行编程的最新工具,以及C#4.0新增的动态功能。利用新增的动态功能,C#语言允许开发者访问Python和Ruby这样的后期绑定语言。为COM Interop提供的增强支持允许开发人员以一种直观且易于使用的语法访问Microsoft Office,该语法使得这种工具也易于使用。Mark对这些重要主题的精彩讲述,并连同他对并行开发最新进展的权威解释,极大地增加了本书的“含金量”。如果C#开发人员想要磨砺他们的技能,并掌握C#语言最好和最关键的部分,本书就是必读的。
作为C#团队的社区项目经理(Commtmity Program Manager),我的职责就是随时跟进社区的需求。我经常都能听到这样的抱怨:“微软的新技术太多了,简直让人应接不暇。我需要阅读详细解释这种技术的文档,而且我希望这些文档很容易看懂。”对于每一名希望了解微软最新技术的C#开发者,Mark Michaelis都是他们最为可靠的“单人解决方案”。
第一次与Mark见面是在华盛顿州雷德蒙德市,那是2006年夏天的一个清新、阳光明媚的早上。我喜欢晚睡,但我已被提前告知,Mark是一位非常积极的社区成员。所以,那天我不得不起得很早去见他。幸好我早起去见他了!时过多年,那天早上他给我留下的深刻印象至今依然记忆犹新。
Mark是一个高个子的运动员,来自南非,说一口清楚、流利的英语,有一点口音,不过相信大多数美国人都分辨不出其中的区别。他是铁人三项的运动员,有着从事那种运动的人特有的精干、活跃的外表。虽然表面上乐呵呵的,但他做起事情来却显得非常老练。给人的感觉就是他有一种特殊的本事,能在有限的时间里安排尽可能多的活动。
Mark经常要到微软总部来参加有关未来技术的一些研讨会,或者就团队的一些未来计划提供咨询。从华盛顿州斯波堪市飞到这里,Mark有一个清楚的日程表。他知道自己在Microsoft总部的职责,他在那里会将全部身心都放到工作上,而在工作结束后又会风尘仆仆地赶回斯波堪与家人团聚。有时,他能抽出一些时间来和我匆匆见上一面,而每次会面都让我感到高兴。他是一个乐观、精力充沛的家伙,对微软开发的新技术或程序总能提出一些令人振奋的见解。
通过以上对Mark的简单描述,相信你对本书的内容已经心中有数了。这是一本主题鲜明的书,结构提纲非常合理,而且通篇文字都简洁流畅,没有任何废话。Mark着意挑选了需要详尽解释的核心语言部分,并用他平时说话的方式讲出来——表达清楚、有血有肉,而且丝毫没有居高临下的口吻。Mark知道读者想要听什么,而他也做到了知无不言、言无不尽。
Mark不光懂C#,还懂英语。他知道如何正确地造句,如何把他的思想灌注到看似普通的段落和小节中,以及如何引入和总结主题。他善于用清楚且易于理解的方式来解释一个复杂的主题。Mark这本书的第一版我是逐页看过的,当时全神贯注地阅读,只花了我几个晚上的时间。和最新版本一样,整个阅读体验是令人愉快和满足的。Mark精心选择了要讲述的主题,并用尽可能简单的话来解释它们。他知道哪些应该包括进来,哪些可以暂时放在一边。如果他想探讨一个高级主题,就会非常贴心地把它同书的其余部分隔开。他从不炫耀,一直都以读者的感受为重。
在本书的这一版中,一个相当重要的主题就是LINQ。对于许多开发者来说,LINQ所采用的说明性编程风格属于一种全新的技术,需要为之发展出一套新的编程习惯和新的思维方式。
C#3.0引入了几项支持LtNQ的新特性。本书这一版的主要目标之一就是详细讨论这些特性。对LINQ及其关联技术进行解释绝不是一项轻松的任务,Mark发挥了其作家兼教师职业的特长,使这些主题尽可能地清楚和容易理解。
为了理解LINQ而需掌握的所有核心技术都在本书得到了精心的解释,其中包括:
·分部方法
·自动属性
·对象初始化器
·集合初始化器
·匿名类型
·隐式局部变量(var)
·Lambda
·扩展方法
·表达式树
媒体评论回到顶部↑
“让Mark Michaelis成为你从新手到专业C#开发者的引路人。如果从来没有用过C#,请仔细阅读本书,它提供了语言的一份完整指南。即使你已经熟悉C#,也能从中发现大量可以学习的东西。Mark非常全面地讨论了C#4.0语言及最新的技术。无论现在还是将来,本书都应该是你的案头必备宝典。每个C#开发者都应该把它放在手边。”
——Bill Wagner,SRT Solutions创始人,
畅销书Effective C#和More Effective C#的作者“无论是想进入C#开发领域,还是想进一步提高自己的C#开发水平,都必须挑选一本讲C#的真正好书。现在,你手中拿的就是这样一本好书。”
——Charlie Calvert,微软Visual C#社区项目经理
“本书延续以前各版的传统,权威地描述了C#语言本身以及如何用它高效率地编码。本书覆盖语言的方方面面,从基础内容到高级主题。通过阅读本书,读者不仅能逐渐理解C#语言,还能迅速成为一名更好的开发者。”
——TroyMagennis,C#MVP,HookedOnLINQ.com创始人
“C#之所以能成为当今首屈一指的编程语言,甚至傲视同侪,.NET Framework功不可没。本书清晰而准确地描述了语言和框架的重要主题,这使它成为学习C#语言的一个重要工具。本书同时也覆盖了常规编程,也就是那些‘本质’的东西。”
——Bob Powell,C#MVP,www.bobpowell.net
“任何人要想成为专业的C#程序员,本书都必不可少。无论C#专家还是新手,我给他们推荐的书单都非常短,但都少不了这本书。”
——Peter Ritchie,C# MVP,Peter Ritchie软件咨询公司总裁
——Bill Wagner,SRT Solutions创始人,
畅销书Effective C#和More Effective C#的作者“无论是想进入C#开发领域,还是想进一步提高自己的C#开发水平,都必须挑选一本讲C#的真正好书。现在,你手中拿的就是这样一本好书。”
——Charlie Calvert,微软Visual C#社区项目经理
“本书延续以前各版的传统,权威地描述了C#语言本身以及如何用它高效率地编码。本书覆盖语言的方方面面,从基础内容到高级主题。通过阅读本书,读者不仅能逐渐理解C#语言,还能迅速成为一名更好的开发者。”
——TroyMagennis,C#MVP,HookedOnLINQ.com创始人
“C#之所以能成为当今首屈一指的编程语言,甚至傲视同侪,.NET Framework功不可没。本书清晰而准确地描述了语言和框架的重要主题,这使它成为学习C#语言的一个重要工具。本书同时也覆盖了常规编程,也就是那些‘本质’的东西。”
——Bob Powell,C#MVP,www.bobpowell.net
“任何人要想成为专业的C#程序员,本书都必不可少。无论C#专家还是新手,我给他们推荐的书单都非常短,但都少不了这本书。”
——Peter Ritchie,C# MVP,Peter Ritchie软件咨询公司总裁
【插图】








点击看大图






加载中...

