C# 程序设计语言(原书第4版)
基本信息
- 作者: (美)Anders Hejlsberg Mads Torgersen Scott Wiltamuth Peter Golde [作译者介绍]
- 译者: 陈宝国 黄俊莲 马燕新
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111347781
- 上架时间:2011-8-8
- 出版日期:2011 年8月
- 开本:16开
- 页码:559
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > C#
内容简介回到顶部↑
作译者回到顶部↑
本书提供作译者介绍
Anders Hejlsberg 是编程界的传奇人物。他是C#语言的架构师,同时也是微软技术专家。
Mads Torgersen 是微软C#的项目经理,负责日常语言设计工作以及维护C#语言的规范。
Scott Wiltamuth 是Visual Studio Professional团队的合作项目主管。他在微软参与过OLE Automation、Visual Basic、VBScript、JScript、Visual J++和Visual C#等开发工具的开发工作。
Peter Golde 作为微软在ECMA委员会(这个委员会负责C#的标准化工作)的主要代表,领导实现了编译器并参与了C#语言的设计工作.. << 查看详细
Mads Torgersen 是微软C#的项目经理,负责日常语言设计工作以及维护C#语言的规范。
Scott Wiltamuth 是Visual Studio Professional团队的合作项目主管。他在微软参与过OLE Automation、Visual Basic、VBScript、JScript、Visual J++和Visual C#等开发工具的开发工作。
Peter Golde 作为微软在ECMA委员会(这个委员会负责C#的标准化工作)的主要代表,领导实现了编译器并参与了C#语言的设计工作.. << 查看详细
目录回到顶部↑
《c# 程序设计语言(原书第4版)》
译者序
序言
前言
作者简介
第1章 介绍 1
1.1 hello,world 2
1.2 程序结构 3
1.3 类型和变量 5
1.4 表达式 9
1.5 语句 10
1.6 类和对象 14
1.6.1 成员 15
1.6.2 访问控制 16
1.6.3 类型参数 16
1.6.4 基类 17
1.6.5 字段 18
1.6.6 方法 19
1.6.7 其他函数成员 28
1.7 结构 35
译者序
序言
前言
作者简介
第1章 介绍 1
1.1 hello,world 2
1.2 程序结构 3
1.3 类型和变量 5
1.4 表达式 9
1.5 语句 10
1.6 类和对象 14
1.6.1 成员 15
1.6.2 访问控制 16
1.6.3 类型参数 16
1.6.4 基类 17
1.6.5 字段 18
1.6.6 方法 19
1.6.7 其他函数成员 28
1.7 结构 35
译者序回到顶部↑
C#一直是程序员使用.NET的主要方式。如果离开了C#,.NET平台的强大也就无从谈起了,想要获得哪怕是今天一半的成功,可能也是根本没有希望的。C#从一开始就把.NET提升到了一个非常高的成功起点上。随着.NET的不断发展,C#的重要性也与日俱增。在共同发展的过程中,C#也开发出了大量优秀的与平台无关的语言特性,从而与.NET平台自身的创新交相辉映,成为一对最佳拍档。
C# 4.0是对C# 3.0的进一步完善和扩展,它在C# 3.0的基础上又引入了以动态语言为主的新特色,例如,C#4.0加入了dynamic关键字,可以将变量的static类型声明为dynamic,虽然名为dynamic,但它还属于一种静态类型,而把静态类型声明为dynamic之后,该类型的操作就只会在运行时进行解析,我们从中不难看出JavaScript的身影,这也标志着它离动态语言又近了一步,使得开发人员的编程效率得到进一步提高。这说明,虽然C#从本质上说仍然属于一种静态语言,但是对象的意义已经不再是纯粹的静态对象了,它们开始有了动态特征,这既体现在它们的结构上,也体现在它们的行为上,至少从编译器的角度来看是这样的。
本书无疑是讲解C# 4.0的经典之作,我想这一点各位读者早就赞同了,无须我再赘述。本书还有一大特色就是贯穿全书的注解,正如Don Box所说“每个.NET程序员在读这本书的时候都至少会有一次‘啊,原来如此’的感叹”,而我发现这些注解是引起我发出这样的感叹最多的地方。在本书中,各位C#专家提供了新一轮更深入的见解,堪称点睛之笔。
本书由黄俊莲、陈宝国、马燕新翻译完成。由于译者水平有限,在翻译过程中难免会有一些错误,恳请读者批评指正。
C# 4.0是对C# 3.0的进一步完善和扩展,它在C# 3.0的基础上又引入了以动态语言为主的新特色,例如,C#4.0加入了dynamic关键字,可以将变量的static类型声明为dynamic,虽然名为dynamic,但它还属于一种静态类型,而把静态类型声明为dynamic之后,该类型的操作就只会在运行时进行解析,我们从中不难看出JavaScript的身影,这也标志着它离动态语言又近了一步,使得开发人员的编程效率得到进一步提高。这说明,虽然C#从本质上说仍然属于一种静态语言,但是对象的意义已经不再是纯粹的静态对象了,它们开始有了动态特征,这既体现在它们的结构上,也体现在它们的行为上,至少从编译器的角度来看是这样的。
本书无疑是讲解C# 4.0的经典之作,我想这一点各位读者早就赞同了,无须我再赘述。本书还有一大特色就是贯穿全书的注解,正如Don Box所说“每个.NET程序员在读这本书的时候都至少会有一次‘啊,原来如此’的感叹”,而我发现这些注解是引起我发出这样的感叹最多的地方。在本书中,各位C#专家提供了新一轮更深入的见解,堪称点睛之笔。
本书由黄俊莲、陈宝国、马燕新翻译完成。由于译者水平有限,在翻译过程中难免会有一些错误,恳请读者批评指正。
前言回到顶部↑
C#项目始于12年前的1998年12月,当初的目标是要为全新的(还未命名的).NET平台创建一种简单、现代化、面向对象和类型安全的编程语言。一路走来,C#也算是历经坎坷。现在这门语言已经拥有超过一百万的程序员,发布了4个版本,其中每一个版本都加入了许多重要的新特性。
本书也同样出到了第4版。它提供了C#编程语言的完整技术规范,而且有两点内容是前几版没有的。当然,最显著的就是它涵盖了C# 4.0的新特性,包括动态绑定、指定和可选参数以及协变(covariant)与逆变(contravariant)泛型。这一版修订的主要目的是加强C#与.NET环境外部的对象之间的交互。C# 3.0中的LINQ使得用来访问外部数据源的代码的语言集成度更高,与之相比,C# 4.0的动态绑定使得C#与那些来自动态编程语言(例如Python、Ruby和JavaScript)的对象之间的交互更加自然,就好像是在与C#的本地对象进行交互一样。
在本书的前一版中,一些著名的C#专家提供了大量的注解。我们不断收到这方面的积极反馈,而且也很高兴在这一版中融入了一些新的和原来的注解者提供的新一轮更深入、更有趣的见解、指导、背景和观点。我们也非常高兴地看到这些注解和本书的核心内容相辅相成,让C#的特性跃然纸上。
创建C#语言是很多人共同努力的结果。C# 1.0的设计团队由Anders Hejlsberg、Scott Wiltamuth、Peter Golde、Peter Sollich和Eric Gunnerson组成。而C# 2.0团队的成员有Anders Hejlsberg、Peter Golde、Peter Hallam、Shon Katzenberger、Todd Proebsting和Anson Horton。
此外,C#和.NET公共语言运行时(Common Language Runtime)中泛型的设计和实现是基于微软研究院里Don Syme和Andrew Kennedy构建的“Gyro”原型之上。C# 3.0则是由Anders Hejlsberg、Erik Meijer、Matt Warren、Mads Torgersen、Peter Hallam和Dinesh Kulkarni负责设计。C# 4.0的设计团队则由Anders Hejlsberg、Matt Warren、Mads Torgersen、Eric Lippert、Jim Hugunin、Lucian Wischik和Neal Gafter组成。
要感谢所有影响了C#设计的人是不可能的,尽管如此我们还是要感谢你们。闭门造车是不会有好设计的,所以来自庞大和热情的程序员社区的意见和建议都是无价的。
C#是(并将继续是)我们工作过的最有挑战性和最令人振奋的项目之一。希望你们用得开心,我们也做得高兴。
Anders Hejlsberg
Mads Torgersen
Scott Wiltamuth
西雅图,华盛顿
2010年9月
本书也同样出到了第4版。它提供了C#编程语言的完整技术规范,而且有两点内容是前几版没有的。当然,最显著的就是它涵盖了C# 4.0的新特性,包括动态绑定、指定和可选参数以及协变(covariant)与逆变(contravariant)泛型。这一版修订的主要目的是加强C#与.NET环境外部的对象之间的交互。C# 3.0中的LINQ使得用来访问外部数据源的代码的语言集成度更高,与之相比,C# 4.0的动态绑定使得C#与那些来自动态编程语言(例如Python、Ruby和JavaScript)的对象之间的交互更加自然,就好像是在与C#的本地对象进行交互一样。
在本书的前一版中,一些著名的C#专家提供了大量的注解。我们不断收到这方面的积极反馈,而且也很高兴在这一版中融入了一些新的和原来的注解者提供的新一轮更深入、更有趣的见解、指导、背景和观点。我们也非常高兴地看到这些注解和本书的核心内容相辅相成,让C#的特性跃然纸上。
创建C#语言是很多人共同努力的结果。C# 1.0的设计团队由Anders Hejlsberg、Scott Wiltamuth、Peter Golde、Peter Sollich和Eric Gunnerson组成。而C# 2.0团队的成员有Anders Hejlsberg、Peter Golde、Peter Hallam、Shon Katzenberger、Todd Proebsting和Anson Horton。
此外,C#和.NET公共语言运行时(Common Language Runtime)中泛型的设计和实现是基于微软研究院里Don Syme和Andrew Kennedy构建的“Gyro”原型之上。C# 3.0则是由Anders Hejlsberg、Erik Meijer、Matt Warren、Mads Torgersen、Peter Hallam和Dinesh Kulkarni负责设计。C# 4.0的设计团队则由Anders Hejlsberg、Matt Warren、Mads Torgersen、Eric Lippert、Jim Hugunin、Lucian Wischik和Neal Gafter组成。
要感谢所有影响了C#设计的人是不可能的,尽管如此我们还是要感谢你们。闭门造车是不会有好设计的,所以来自庞大和热情的程序员社区的意见和建议都是无价的。
C#是(并将继续是)我们工作过的最有挑战性和最令人振奋的项目之一。希望你们用得开心,我们也做得高兴。
Anders Hejlsberg
Mads Torgersen
Scott Wiltamuth
西雅图,华盛顿
2010年9月
序言回到顶部↑
自2000年夏.NET发布以来,已经过去十个年头了。在我看来,当时.NET最重要的两点就是结合了托管代码的本地执行和用于程序之间通信的XML消息机制。然而那个时候我还没有意识到C#会变得那么重要。
C#从一开始就是程序员理解和使用.NET的主要方式。如果你问一个普通的.NET程序员,一个值类型和一个引用类型的区别是什么,他会不假思索地回答 “结构和类的区别”,而不会回答“一个是从System.ValueType继承的类型,而另一个不是从System.ValueType继承的类型”。原因何在?因为我们都是用语言,而不是通过API来和运行时(更重要的是,和其他人)交流想法和意图的。
如果没有一门出色的语言,一个平台要想成功是不可能的。C#最初就为人们如何看待.NET打下了坚实的基础。随着.NET的不断发展,C#的重要性也与日俱增,诸如迭代器和真正的闭包(也称为匿名方法),都是用C#编译器实现的纯语言特性,而不是平台自带的特性。C# 3.0的发布更意味着C#成为了.NET不断创新的主角,它引入了标准化的查询操作符,简洁的lambda表达式、扩展方法,以及在运行时访问表达式树的能力,而这些都是通过语言和编译器的开发实现的。C# 4.0最重要的特性(动态调用)也主要是语言和编译器的特性,而不是对CLR自身的改进。
说到C#就一定会提到它的缔造者Anders Hejlsberg,他像一位牧羊人一样坚守着他创造的这门语言。我非常荣幸地在C# 3.0设计阶段连续好几个月参加了C#的设计会议,Anders的工作让我大开眼界。他有着出色的天赋,深谙程序员喜欢什么和不喜欢什么,同时他又能和设计团队紧密合作,并最终获得最佳的设计方案。
特别是在C# 3.0上,在从函数式语言社区获取灵感并将它们带给广大开发者的过程中,Anders展现出了无与伦比的能力,要知道这绝对不是一件容易的事情。Guy Steele曾经在谈论Java时说道:“我们没打算要吸引Lisp程序员,我们的目标是C++程序员。我们成功地把他们从转向Lisp的路上吸引过来。”当我看到C# 3.0的时候,我就知道C#已经至少获得了一名C++程序员(就是我自己啦)的青睐。C# 4.0向着Lisp(以及JavaScript、Ptython、Ruby等)又靠近了一步,它增加了在不依赖静态类型定义的情况下编写程序的能力。
虽然C#很出色,但是为了理解它的精妙之处,并确保所有人都使用一个一致的C#,我们还是需要有一个参考文档—一个用自然语言(也就是英语)写成的并遵守一种统一范式(BNF范式)的文档。而你手中的这本书正是这样的一份文档。根据我的经验,我敢说每个.NET程序员在读本书时都至少会有一次“啊,原来如此”的感叹,它能让你的专业水平更上一层楼。
请享受阅读本书所带来的快乐吧。
Don Box
雷德蒙,华盛顿
2010年5月
C#从一开始就是程序员理解和使用.NET的主要方式。如果你问一个普通的.NET程序员,一个值类型和一个引用类型的区别是什么,他会不假思索地回答 “结构和类的区别”,而不会回答“一个是从System.ValueType继承的类型,而另一个不是从System.ValueType继承的类型”。原因何在?因为我们都是用语言,而不是通过API来和运行时(更重要的是,和其他人)交流想法和意图的。
如果没有一门出色的语言,一个平台要想成功是不可能的。C#最初就为人们如何看待.NET打下了坚实的基础。随着.NET的不断发展,C#的重要性也与日俱增,诸如迭代器和真正的闭包(也称为匿名方法),都是用C#编译器实现的纯语言特性,而不是平台自带的特性。C# 3.0的发布更意味着C#成为了.NET不断创新的主角,它引入了标准化的查询操作符,简洁的lambda表达式、扩展方法,以及在运行时访问表达式树的能力,而这些都是通过语言和编译器的开发实现的。C# 4.0最重要的特性(动态调用)也主要是语言和编译器的特性,而不是对CLR自身的改进。
说到C#就一定会提到它的缔造者Anders Hejlsberg,他像一位牧羊人一样坚守着他创造的这门语言。我非常荣幸地在C# 3.0设计阶段连续好几个月参加了C#的设计会议,Anders的工作让我大开眼界。他有着出色的天赋,深谙程序员喜欢什么和不喜欢什么,同时他又能和设计团队紧密合作,并最终获得最佳的设计方案。
特别是在C# 3.0上,在从函数式语言社区获取灵感并将它们带给广大开发者的过程中,Anders展现出了无与伦比的能力,要知道这绝对不是一件容易的事情。Guy Steele曾经在谈论Java时说道:“我们没打算要吸引Lisp程序员,我们的目标是C++程序员。我们成功地把他们从转向Lisp的路上吸引过来。”当我看到C# 3.0的时候,我就知道C#已经至少获得了一名C++程序员(就是我自己啦)的青睐。C# 4.0向着Lisp(以及JavaScript、Ptython、Ruby等)又靠近了一步,它增加了在不依赖静态类型定义的情况下编写程序的能力。
虽然C#很出色,但是为了理解它的精妙之处,并确保所有人都使用一个一致的C#,我们还是需要有一个参考文档—一个用自然语言(也就是英语)写成的并遵守一种统一范式(BNF范式)的文档。而你手中的这本书正是这样的一份文档。根据我的经验,我敢说每个.NET程序员在读本书时都至少会有一次“啊,原来如此”的感叹,它能让你的专业水平更上一层楼。
请享受阅读本书所带来的快乐吧。
Don Box
雷德蒙,华盛顿
2010年5月
媒体评论回到顶部↑
据我的经验,我敢说每个程序员在读本书的时候都至少会有一次“啊,原来如此”的感叹,它能让你的编程水平更上一层楼。
—— 选自Don Box的序言
本书为.NET专业开发人员提供了很好的参考。它涵盖了所有基础知识,从专家观点到参考,再到用法。本书是想要扩充知识和专业技能的开发人员的重要参考读物。
—— John Montgomery,微软开发部首席团队经理
—— 选自Don Box的序言
本书为.NET专业开发人员提供了很好的参考。它涵盖了所有基础知识,从专家观点到参考,再到用法。本书是想要扩充知识和专业技能的开发人员的重要参考读物。
—— John Montgomery,微软开发部首席团队经理







点击看大图




加载中...

