C# Primer中文版
[特价中]基本信息
内容简介回到顶部↑
以他举世闻名的“primer”风格,畅销书作者[b]stan lippman[/b]现为您呈上一份不容错过的c#指南。《c# primer》是一本内容详实,实例丰富的入门读物,全面介绍了这门新面向对象编程语言。
[b]知名译者侯捷最新译作[/b]。
[b]知名译者侯捷最新译作[/b]。
作译者回到顶部↑
本书提供作译者介绍
作者:Stanley B.Lippman,现为Microsoft Visual C++开发组的系统架构师(Architect)。在此之前,他曾是美国喷气推进实验所(JPL)的特别顾问。Stan在Bell实验室呆了12年多,其间他与Bjarne Stroustrup共事,一同开发最初的C++编译器,并参与Foundation研究项目。离开Bell实验室之后,他在迪斯尼电影动画公司(Disney Feature Animation)任职,先是首席软件工程师,然后是电影《幻想曲2000》的软件技术指导(TD)。Stan撰写了数本书籍:《C++ Primer》、《Essential C++》、《Inside the C++ Object Model》(均由Addi.. << 查看详细
目录回到顶部↑
译序by侯捷 iii
译序by陈硕 v
目录 vii
前言 xiii
c# 环境设置 xix
第1章 hello,c# 1
1.1 你的第一个c# 程序 1
1.2 命名空间(namespaces) 6
1.3 main()的另一种形式 10
1.4 编写一个语句(statement) 11
1.5 开启一个文本文件(text file)以供读写 17
1.6 格式化输出 19
1.7 string型别 21
1.8 局部对象(local objects) 24
1.9 value型别和reference型别 28
1.10 c# array(数组) 29
1.11 new 表达式 30
1.12 垃圾回收(garbage collection) 32
1.13 动态array:arraylist collection class 33
1.14 统一型别系统(the unified type system) 35
译序by陈硕 v
目录 vii
前言 xiii
c# 环境设置 xix
第1章 hello,c# 1
1.1 你的第一个c# 程序 1
1.2 命名空间(namespaces) 6
1.3 main()的另一种形式 10
1.4 编写一个语句(statement) 11
1.5 开启一个文本文件(text file)以供读写 17
1.6 格式化输出 19
1.7 string型别 21
1.8 局部对象(local objects) 24
1.9 value型别和reference型别 28
1.10 c# array(数组) 29
1.11 new 表达式 30
1.12 垃圾回收(garbage collection) 32
1.13 动态array:arraylist collection class 33
1.14 统一型别系统(the unified type system) 35
译者序回到顶部↑
译序by侯捷
历经前期的澹淡经营和后期十数年的蓬勃发展之后,OO(Object Oriented,面向对象)技术已成为学术界和工业界普遍支持与关注的一种软件技术。OO技术细分为OOP(Programming)、OOA(Analysis)、OOD(Design)……最基础的自然是OOP。谈到OOP则不能不谈谈OOP语言(Object Oriented Programming Language,面向对象编程语言)。
目前软件业界存在三大主流OOP语言:C++, Java, C#。其中以C++ 历史最久,C# 年纪最轻。就演化而言,愈新的OOP语言理应有着对OO观念的愈优秀支持(否则缔造者该打屁股J)。这个事实的确展现在上述三大OOP语言身上。当然,关键字(keywords)的多寡,以及关键字背后的语言机制的底层实现技术,并不能够总括一切价值-- C++, Java, C# 各擅胜场,各有主攻。
在C#(及其背后不可不提的 .NET Framework)问世不算太久的今天,我很高兴翻译完成这部由知名作家Stanley B. Lippman所写的《C# Primer》的中文版。这是一本轻量级小书,以8章400页的篇幅介绍了C# 语法、OOP概念,部分 .NET Framework、C#/.NET Framework环境下的Windows/Web程序开发方法,以及CLR(共通语言运行层)之中关于动态型别系统的一些技术内容。这些都是众多C# 语言书很可触及的主题,谈不上独特(第8章也许稍微独特些)。本书也不是一本面面俱到的 C# 或 .NET Framework Library百科全书。
是的,这本书就是一碟小菜。作者以其个人在技术写作上的丰富经验,为读者组织出一个容易亲近、容易学习的架构和一些有趣的样例。
这是我个人翻译过的第四本Stanley B. Lippman著作(前三本是《C++ Primer》、《Inside the C++ Object Model》和《Essential C++》)。Lippman的写作向来有"大处着眼,小处不甚严谨"的特性,这个特性在本书依然存在。部分原因和 C# 的年轻有关--或者应该说主要和 .NET Framework Library的年轻有关!由于规格(spec.)上的变化,导致书中内容偶与目前最新版本有所出入。译者在翻译过程中力求实际履踏书中样例细节,并将验证结果补充上来,弥补原书小节不矜的缺点,以及大环境激烈变动下的遗憾。当然啦,履踏工作很难保证滴水不漏。
本书由我和陈硕先生合译。陈硕负责初译与术语转换,我负责其余一切。中译本(尤其是后半部)对原书有相当补充,以译注方式呈现,这些全归功于陈硕先生的勤奋和认真,以及游刃有余的实务能力。书中亦保留了对原书的某些勘误标记,例如"原书有误,已更改如上"等等说明,为的是方便可能的中英对照读者,使他们不至于一时困惑。本书勘误表由侯捷网站维护,网址见文末。
* * * * * * * * * * * * * * * * * * * * * *
对于从未踏入Object Oriented Programming(面向对象编程)领域的人们,任何一种OOPL都不易学习。因为相较于Procedural-Based Programming(过程编程),这是一种思考模式上的大扭转。然而OO技术是大势所趋,早进入胜过晚进入,晚进入胜过不进入。路途多艰,唯勤是岸。
对于已经拥有OOP经验的人们,学习 C# 则是件轻松不过的事。C++、Java、C#三者的语法和编程概念,绝大部分彼此兼容。精一而通三,我常这么说J
网络论坛上,最容易引发众多讨论并且最容易撩拨民粹情绪的帖子,莫如侈言语言的优劣和前途。在Java、C#相继进入原本C++ 擅专的领域之后,这样的讨论不时可见,日复一日。在一个容许并承认多元价值的世界里,这类口水之争实在没有意义,冗长而踊跃的发言涵盖不了本质的苍白。并非语言的比较没有价值,而是语言的价值没得比较。
人们总是"就已知学未知"。我自己,身为一个对C++和Java都颇有经验的程序员,很希望看到诸如《C# for C++ Programmers》或《C# for Java Programmers》这样的书籍,可使我这般背景的人,藉由不同语言的特性之间的专注比较,快速而印象深刻地掌握新技术。当然,我的这种背景涵盖不了所有C# 学习者,所以《C# Primer》自有其价值。
侯捷 2003.04.17 于台湾新竹
jjhou@jjhou.com
http://www.jjhou.com(繁体)http://jjhou.csdn.net(简体)
译序by陈硕
正如您所知道的,.NET是Microsoft的战略核心技术,而 C# 又是 .NET的核心语言。如何快速稳健地步入.NET开发领域?我想学习 C# 语言将是首选途径,而您手上这本《C# Primer中文版》正是学习C# 的优质教材。
历经前期的澹淡经营和后期十数年的蓬勃发展之后,OO(Object Oriented,面向对象)技术已成为学术界和工业界普遍支持与关注的一种软件技术。OO技术细分为OOP(Programming)、OOA(Analysis)、OOD(Design)……最基础的自然是OOP。谈到OOP则不能不谈谈OOP语言(Object Oriented Programming Language,面向对象编程语言)。
目前软件业界存在三大主流OOP语言:C++, Java, C#。其中以C++ 历史最久,C# 年纪最轻。就演化而言,愈新的OOP语言理应有着对OO观念的愈优秀支持(否则缔造者该打屁股J)。这个事实的确展现在上述三大OOP语言身上。当然,关键字(keywords)的多寡,以及关键字背后的语言机制的底层实现技术,并不能够总括一切价值-- C++, Java, C# 各擅胜场,各有主攻。
在C#(及其背后不可不提的 .NET Framework)问世不算太久的今天,我很高兴翻译完成这部由知名作家Stanley B. Lippman所写的《C# Primer》的中文版。这是一本轻量级小书,以8章400页的篇幅介绍了C# 语法、OOP概念,部分 .NET Framework、C#/.NET Framework环境下的Windows/Web程序开发方法,以及CLR(共通语言运行层)之中关于动态型别系统的一些技术内容。这些都是众多C# 语言书很可触及的主题,谈不上独特(第8章也许稍微独特些)。本书也不是一本面面俱到的 C# 或 .NET Framework Library百科全书。
是的,这本书就是一碟小菜。作者以其个人在技术写作上的丰富经验,为读者组织出一个容易亲近、容易学习的架构和一些有趣的样例。
这是我个人翻译过的第四本Stanley B. Lippman著作(前三本是《C++ Primer》、《Inside the C++ Object Model》和《Essential C++》)。Lippman的写作向来有"大处着眼,小处不甚严谨"的特性,这个特性在本书依然存在。部分原因和 C# 的年轻有关--或者应该说主要和 .NET Framework Library的年轻有关!由于规格(spec.)上的变化,导致书中内容偶与目前最新版本有所出入。译者在翻译过程中力求实际履踏书中样例细节,并将验证结果补充上来,弥补原书小节不矜的缺点,以及大环境激烈变动下的遗憾。当然啦,履踏工作很难保证滴水不漏。
本书由我和陈硕先生合译。陈硕负责初译与术语转换,我负责其余一切。中译本(尤其是后半部)对原书有相当补充,以译注方式呈现,这些全归功于陈硕先生的勤奋和认真,以及游刃有余的实务能力。书中亦保留了对原书的某些勘误标记,例如"原书有误,已更改如上"等等说明,为的是方便可能的中英对照读者,使他们不至于一时困惑。本书勘误表由侯捷网站维护,网址见文末。
* * * * * * * * * * * * * * * * * * * * * *
对于从未踏入Object Oriented Programming(面向对象编程)领域的人们,任何一种OOPL都不易学习。因为相较于Procedural-Based Programming(过程编程),这是一种思考模式上的大扭转。然而OO技术是大势所趋,早进入胜过晚进入,晚进入胜过不进入。路途多艰,唯勤是岸。
对于已经拥有OOP经验的人们,学习 C# 则是件轻松不过的事。C++、Java、C#三者的语法和编程概念,绝大部分彼此兼容。精一而通三,我常这么说J
网络论坛上,最容易引发众多讨论并且最容易撩拨民粹情绪的帖子,莫如侈言语言的优劣和前途。在Java、C#相继进入原本C++ 擅专的领域之后,这样的讨论不时可见,日复一日。在一个容许并承认多元价值的世界里,这类口水之争实在没有意义,冗长而踊跃的发言涵盖不了本质的苍白。并非语言的比较没有价值,而是语言的价值没得比较。
人们总是"就已知学未知"。我自己,身为一个对C++和Java都颇有经验的程序员,很希望看到诸如《C# for C++ Programmers》或《C# for Java Programmers》这样的书籍,可使我这般背景的人,藉由不同语言的特性之间的专注比较,快速而印象深刻地掌握新技术。当然,我的这种背景涵盖不了所有C# 学习者,所以《C# Primer》自有其价值。
侯捷 2003.04.17 于台湾新竹
jjhou@jjhou.com
http://www.jjhou.com(繁体)http://jjhou.csdn.net(简体)
译序by陈硕
正如您所知道的,.NET是Microsoft的战略核心技术,而 C# 又是 .NET的核心语言。如何快速稳健地步入.NET开发领域?我想学习 C# 语言将是首选途径,而您手上这本《C# Primer中文版》正是学习C# 的优质教材。
前言回到顶部↑
C# 是一门崭新的编程语言,它由Microsoft发明,并伴随着Visual Studio.NET开发工具而被引入人们视野。如今已有一百多万行C# 代码被用于实现 .NET class framework。本书涵盖C# 语言本身以及它在 .NET class framework编程领域中的应用,并阐述其应用领域,如ASP.NET和XML等等。
书中素材通常以如下方式呈现:给定一个任务,然后以一二种方法实现出来,同时并介绍语言特性或class framework相关种种。这么做的目的在于示范如何利用C# 语言和class framework来解决问题,而不单单只是条列语言特性和class framework API。
C# 的学习可分为两个步骤:(1) 学习C# 语言细节;(2) 熟悉 .NET class framework。这两个步骤体现于本书的组织结构上。
第一步,我们先学习语言,包括class(类)、interface(接口)继承、delegates(委托)等语言机制,以及像"统一型别系统"(unified type system)、value型别与reference型别、装箱(boxing)等底层概念。前四章涵盖这些内容。
第二步,熟悉 .NET class framework,特别是Windows/Web程序设计,以及对XML的支持。这是本书后四章的焦点所在。
这本书读下来,你的C# 编程技能应该会有一个飞跃的进步。此外,你还会熟悉 .NET class framework的部分精彩内容。书中所有程序代码可自本人公司的主页下载(www.objectwrite.com)。
您也可以直接给我电子邮件:slippman@objectwrite.com.
本书组织
本书由八个互有关联的长章节组成。前四章关注C# 语言,着眼于语言内建特性、class机制、class继承、interface继承等等。余下四章带你探究 .NET class framework所支持的诸多应用领域。
第1章 涵盖语言基础及 .NET class framework提供的一些基础classes。本章的讨论以一个小程序的设计为主轴,介绍诸如命名空间(namespaces)、异常处理(exception handling)、统一型别系统(unified type system)等概念。
第2章 涵盖构建class所需的一些基本元素,包括访问许可(access permission)、常量(const)成员和只读(readonly)成员之间的区别、特殊函数如索引器(indexers)和属性(properties)等等。我们还要学习"成员初始化"的不同策略、操作符重载(operator overloading)规则及转换操作符(conversion operators)。最后还要看看delegate(委托)型别,这种型别用起来像是"用以指向函数"之万用指针。
第3、4章 涵盖class的继承和interface的继承。前者使我们得以定义一整族"覆写(override)某一公共接口"的特化型别,例如抽象的WebRequest基类和"与特定协议相关的"HttpWebRequest子类。后者可以为彼此不相关的classes提供公共服务或共享的特征属性(attribute)。例如IDisposable接口用于释放资源。持有数据库连接(database connections)的class和持有window handles的class往往都会实现IDisposable,尽管它们在其他方面并无关联。
第5章 带你对 .NET class library做一次大范围巡礼,看看I/O(包括文件和目录的操作)、正则表达式(regular expressions)、sockets(网络套接口)、thread(线程)、WebRequest和WebResponse等classes阶层体系,以及对ADO.NET和"建立数据库连接"的简短介绍、XML的使用等等。
第6、7章 介绍Windows Forms和Web Forms的拖放式(drag-and-drop)开发。第7章聚焦于ASP.NET和Web页面的生命周期(life cycle)。这两章有大量例子谈及如何使用预制控件(prebuilt controls),以及如何以事件处理器(event handlers)和用户互动(互操作)。
第8章(最后一章)提供了一份".NET 共通语言运行层(Common Language Runtime, CLR)开发人员指南"。本章主要着眼于装配件(Assemblies)、型别反射(type reflection)和Attributes(特征属性)。本章末尾还摘要介绍了所有 .NET语言的最终编译结果--中间语言(intermediate language)。
为程序员而写
本书并不假设你已经了解C++、Visual Basic或Java,但假设你曾经以某种语言写过程序。也就是说,我假设你不知道C# 的循环语句foreach的确切语法,但我认为你知道什么是"循环"。尽管我会阐述如何在C# 中调用一个函数,我还是假设你听得懂"调用一个函数"是什么意思。本书不要求你有面向对象编程知识,你也不需要了解早期版本的ASP和ADO。
有些人(特别是一些很聪明的人)认为,在 .NET中,程序语言相对于(语言所附着的)底层CLR(Common Language Runtime,共通语言运行层)来说,处于次要位置,就像陆地漂浮于地质构造板块之上一样。我不同意这种说法。我们借助语言来表达自己,对语言的选择直接影响到我们的程序设计。本书实际上把C# 设想为最佳的 .NET 编程语言。
书中素材通常以如下方式呈现:给定一个任务,然后以一二种方法实现出来,同时并介绍语言特性或class framework相关种种。这么做的目的在于示范如何利用C# 语言和class framework来解决问题,而不单单只是条列语言特性和class framework API。
C# 的学习可分为两个步骤:(1) 学习C# 语言细节;(2) 熟悉 .NET class framework。这两个步骤体现于本书的组织结构上。
第一步,我们先学习语言,包括class(类)、interface(接口)继承、delegates(委托)等语言机制,以及像"统一型别系统"(unified type system)、value型别与reference型别、装箱(boxing)等底层概念。前四章涵盖这些内容。
第二步,熟悉 .NET class framework,特别是Windows/Web程序设计,以及对XML的支持。这是本书后四章的焦点所在。
这本书读下来,你的C# 编程技能应该会有一个飞跃的进步。此外,你还会熟悉 .NET class framework的部分精彩内容。书中所有程序代码可自本人公司的主页下载(www.objectwrite.com)。
您也可以直接给我电子邮件:slippman@objectwrite.com.
本书组织
本书由八个互有关联的长章节组成。前四章关注C# 语言,着眼于语言内建特性、class机制、class继承、interface继承等等。余下四章带你探究 .NET class framework所支持的诸多应用领域。
第1章 涵盖语言基础及 .NET class framework提供的一些基础classes。本章的讨论以一个小程序的设计为主轴,介绍诸如命名空间(namespaces)、异常处理(exception handling)、统一型别系统(unified type system)等概念。
第2章 涵盖构建class所需的一些基本元素,包括访问许可(access permission)、常量(const)成员和只读(readonly)成员之间的区别、特殊函数如索引器(indexers)和属性(properties)等等。我们还要学习"成员初始化"的不同策略、操作符重载(operator overloading)规则及转换操作符(conversion operators)。最后还要看看delegate(委托)型别,这种型别用起来像是"用以指向函数"之万用指针。
第3、4章 涵盖class的继承和interface的继承。前者使我们得以定义一整族"覆写(override)某一公共接口"的特化型别,例如抽象的WebRequest基类和"与特定协议相关的"HttpWebRequest子类。后者可以为彼此不相关的classes提供公共服务或共享的特征属性(attribute)。例如IDisposable接口用于释放资源。持有数据库连接(database connections)的class和持有window handles的class往往都会实现IDisposable,尽管它们在其他方面并无关联。
第5章 带你对 .NET class library做一次大范围巡礼,看看I/O(包括文件和目录的操作)、正则表达式(regular expressions)、sockets(网络套接口)、thread(线程)、WebRequest和WebResponse等classes阶层体系,以及对ADO.NET和"建立数据库连接"的简短介绍、XML的使用等等。
第6、7章 介绍Windows Forms和Web Forms的拖放式(drag-and-drop)开发。第7章聚焦于ASP.NET和Web页面的生命周期(life cycle)。这两章有大量例子谈及如何使用预制控件(prebuilt controls),以及如何以事件处理器(event handlers)和用户互动(互操作)。
第8章(最后一章)提供了一份".NET 共通语言运行层(Common Language Runtime, CLR)开发人员指南"。本章主要着眼于装配件(Assemblies)、型别反射(type reflection)和Attributes(特征属性)。本章末尾还摘要介绍了所有 .NET语言的最终编译结果--中间语言(intermediate language)。
为程序员而写
本书并不假设你已经了解C++、Visual Basic或Java,但假设你曾经以某种语言写过程序。也就是说,我假设你不知道C# 的循环语句foreach的确切语法,但我认为你知道什么是"循环"。尽管我会阐述如何在C# 中调用一个函数,我还是假设你听得懂"调用一个函数"是什么意思。本书不要求你有面向对象编程知识,你也不需要了解早期版本的ASP和ADO。
有些人(特别是一些很聪明的人)认为,在 .NET中,程序语言相对于(语言所附着的)底层CLR(Common Language Runtime,共通语言运行层)来说,处于次要位置,就像陆地漂浮于地质构造板块之上一样。我不同意这种说法。我们借助语言来表达自己,对语言的选择直接影响到我们的程序设计。本书实际上把C# 设想为最佳的 .NET 编程语言。


点击看大图








加载中...