作者:empty 页数:461 出版社:empty |
译者序(一)书是知识的载体,是智慧的传播者。技术图书在技术的普及、发展过程中的作用是毋庸置疑译者不才,自己无力写出这样的书,愿意以虫蚁之能,行搬运之事,将优秀外文书籍译成中C#和.NET平台近年来迅速普及, 已经成为很多公司使用的主要技术之一。有很多出色的应本书是一部极为出色的C#著作。正如本书作者所说,它不仅包含了入门的基础知识,而且同在本书的翻译过程中,我尽量保持原书清晰明了的风格,并努力保证术语及用词的准确。由感谢我的妻子毛毛!在我翻译本书的过程中,她承担了大部分的家务,并给予了我很多支持相信这本书一定对你有用!的。在这个知识爆炸、信息技术迅猛发展的时代,技术图书的作用更加突出。我们比以往任何时候都需要关于新技术和新平台的参考资料。一本描述清晰、内容详细的书能使我们快速掌握这些技术。文,以利于国人参考和学习,从而为技术传播尽自己的绵薄之力。用都是使用C#开发的, 包括很多Web 2.0时代的网络应用。虽然.NET平台目前还只能在Windows操作系统下工作, 但是这并没有妨碍它发展壮大。一方面是因为Windows操作系统的普及程度已经给.NET提供了巨大的发展空间; 另一方面是因为.NET确实是个优秀的平台, 而且C#也确实算得上是新一代的优秀的面向对象编程语言。作为一个与时俱进的软件工程师, 忽视C#和.NET是很不明智的。时还能作为开发过程中的参考书使用。书中使用了大量的示例和图表,使内容一目了然。即便是有经验的C#程序员,阅读这本书也会受益匪浅。于能力有限,我虽已尽所能,但仍难免有不妥之处,望读者朋友海涵。和鼓励。没有她的爱和付出,本书的翻译工作肯定不会进展得如此顺利。
译者序前(二)言.NET经过近8年的发展后已经变得非常庞大, 也非常成熟了, 而且发展的速度越来越快。学好C#是在.NET平台上构建一切应用的前提, 因此, 我强烈建议欲涉足.NET的初学者无论说点题外话, 很多人没有将.NET框架、CLR和C#语言这三者之间的关系区分清楚, 认为其言归正传,拿到本书的英文版后,我粗略地看了一下目录,认为此书是一本彻底面向初学者可能和作者的C++背景有关,作者喜欢从底层(比如内存布局)的角度来剖析一些知识点。这有助于读者在知其然的同时还能知其所以然,从而打下扎实的基础。书如其名,本书的特点就是有大量示意性的表格和插图,简洁明了,非常易于读者对知识点的理解。书中还有大量的范例代码,代码中也添加了很多注解,可以帮助读者理解代码的要点。另外,本书绝对不是老版的旧酒装新瓶。C#3.0的所有新特性都完全地融合在其中,而不是在老版本基础上加一些关于新特性的章节。由于时间关系,译者在翻译的过程中难免有疏漏。本书的第1~13章由苏林先生翻译,第14~25本书的目的是讲授C#编程语言的基础知识和工作原理。大多数图书主要使用文字讲授编程。我们中许多人都习惯于形象思维,而图形和表格有助于我们更清晰地理解概念。在几年的编然而,单是图表并不足以解释一种编程语言和平台。本书的目标是找到文字和图表的最佳结本书写给所有想要学习C#的人——从初学者到有经验的程序员。刚开始学编程的人会发现,请享受本书吧!
我想感谢Sian每天支持并鼓励我, 我还想感谢我的父母、兄弟和姐妹, 他们一直爱我并支持我还想对A press的朋友表达诚挚的感谢, 他们与我一起工作并完成这本书。我真心感激他们如何都应该学习C#,并且要学好。版本号是一一对应的。其实, .NET框架是一个独立发布的软件包, 包括了CLR、类库以及相关的语言编译器等工具。C#代码经过编译之后在CLR环境中运行。由于.NET 3.0/3.5其实是.NET 2.0的扩展(只是增加了一些新的程序集) , 所以.NET 3.0/3.5的CLR版本还是2.0。而且, .NET 3.0其实只扩展了WF、WPF、WCF、WCS等组件, 并没有提供新的C#编译器, 直到.NET 3.5中才打包了C#3.0的编译器。所以, .NET框架、CLR和C#的版本之间的对应关系如下表所示:N
也就是说, 对于那些不涉及新程序集的C#3.0新特性(比如自动属性、匿名类型等) 在.NET2.0的环境中也可以运行, CLR对这些特性是一无所知的。的基础书籍。在翻译了几章之后,才发现先前的认识不完全正确。此书和一般的面向初学者的C#书籍不太一样:因此,如果你确实已经使用C#构建了很多应用或已经对C#2.0有所掌握,那么本书或许会对你非常有用, 很多关于CLR本质的内容将能帮助你更深入地理解C#。章由我翻译。欢迎对C#或.NET感兴趣的朋友与我交流, 我的邮箱是yzhu@live.com, 个人BLOG是http:/lovecherry.cnblogs.com。最后,预祝你在阅读本书之后能有所收获,编程快乐。文字对于小说来说足够了,但对于编程语言中的很多重要概念,综合运用文字、图形和表格会更容易理解。程语言教学过程中,我发现是我在白板上画的图帮助学生最快地理解了我要传达的概念。合,以使你对这种语言有透彻的理解,并且也让本书能当作参考工具使用。书中全面讲述了基础知识;有经验的程序员会觉得,内容的叙述非常简洁,无需苦苦寻觅就能直接获得想要的信息。对于这两类程序员,内容本身都用图形化方式呈现,这种方式使这种语言更容易学习。
第1章
1.1
C#和.NET框架…
在.NET之前…
1.1.1
1.1.2
1.2
进入Microsoft.NET…
1.3
编译成CIL….
1.4
编译成本机代码并执行…
1.5
1.6
注释类型总结…
类型、存储和变量…
C#程序是一组类型声明…
类型是一种模板…
实例化类型…
数据成员和函数成员…
预定义类型…
用户定义类型…
栈和堆……
3.7.1
栈…
3.7.2堆…
值类型和引用类型…
3.8.1
3.8.2C#类型的分类…
变量…
属性示例
20世纪90年代后期的Windows
编程…
下一代平台的目标…
.NET框架的组成…
大大改进的编程环境…
C#编程概述…
一个简单的C#程序…
标识符和关键字……
2.2.1命名约定……
2.2.2关键字……
Main:程序的起始点…
2.5.1简单语句…
2.5.2块…
从程序中输出文本…
2.6.1Write….
2.6.2Hrite Line…
2.6.3格式字符串……
2.6.4多重标记和值…
2.7.1关于注释的补充…
2.7.2文档注释……
从类的内部访问成员…
从类的外部访问成员…
5.2.1类型推断和var关键字…
5.2.2嵌套块中的本地变量…
5.6.1形参…
5.6.2实参…
5.6.3带输入参数的方法示例…
5.10.1方法调用…
5.10.2数组作实参…
从类的外部访问静态成员…
6.4.1静态字段示例……
6.4.2静态成员的生存期…
6.8.1属性声明和访问器…
缩写回顾…
第2章
2.1
2.2
2.3
2.4空白…
2.5语句…
2.6
2.7注释…
2目录
4.8访问修饰符…
4.9
4.10
4.11综合应用…
第5章方法…
5.1方法的结构…
5.2本地变量……
5.3本地常量……
5.4方法调用…
5.5返回值……
5.6参数…
5.7值参数…
5.8引用参数…
5.9输出参数…
5.10参数数组…
5.11参数类型总结……
5.12栈帧…
5.13递归……
5.14方法重载…
第6章类进阶…
6.1类成员…
6.2实例类成员…
6.3静态字段…
6.4
6.5静态函数成员……
6.6其他静态类成员类型…
6.7成员常量……
6.8属性…
存储引用类型对象的成员…26
变量声明…27
多重变量声明……29
使用变量的值…29
类:基础…30
类的概述……30
程序和类:一个快速的示例…31
声明类…31
类成员…32
4.4.1字段…….32
4.4.2显式和隐式字段初始化…33
4.4.3声明多个字段…34
4.4.4方法…34
创建变量和类的实例…35
为数据分配内存…….35
4.7
实例成员….36
使用属性…
属性和关联字段…
执行其他计算…
只读和只写属性…
计算只读属性示例…
属性和数据库示例…
自动实现属性…
静态属性…
带参数的构造函数…
默认构造函数…
静态构造函数…
6.10.1静态构造函数示例…
6.10.2构造函数的可访问性…89
对象初始化列表…89
析构函数…90
6.12.1调用析构函数…91
6.12.2标准清理模式…93
比较构造函数和析构函数……94
readonly修饰符…94
this关键字……95
索引…96
6.16.1什么是索引……97
6.16.2索引和属性…98
6.16.3声明索引…98
6.16.4set访问器…99
6.16.5get访问器……100
6.16.6关于索引的补充…100
6.16.7为Employee示例声明索引……100
6.16.8另一个索引示例…101
6.16.9索引重载…102
访问器的访问修饰符……103
分部类和分部类型…104
类和继承……107
类继承……107
访问继承的成员……108
隐藏基类的成员……110
基类访问……111
条件运算符…
8.13一元算术运算符…
8.14
用户定义类型转换…
8.15
运算符重载…
8.16 type of运算符…
第9章
虚方法和覆写方法…
using命名空间指令…
把程序集安装到GAC…
覆写标记为override的方法……115
构造函数初始化语句….119
类访问修饰符……120
访问成员的区域…123
公有成员的可访问性…124
私有成员的可访问性…125
受保护成员的可访问性…125
内部成员的可访问性…126
受保护内部成员的可访问性……126
成员访问修饰符的总结…….126
表达式和运算符…135
8.2.1整数字面量…137
8.2.2实数字面量…137
8.2.3字符字面量…138
8.2.4字符串字面量……139
8.3.1优先级…141
8.3.2结合性…141
简单算术运算符……142
关系比较运算符和相等比较运算符……143
递增运算符和递减运算符…145
条件逻辑运算符…146
10.2.1命名空间名称……186
10.2.2命名空间的补充………187
10.2.3命名空间跨文件伸展…188
10.2.4嵌套命名空间…188
10.3.2using别名指令…190
11.4.1使用特定catch子句的示例…201
11.7.1一般法则…205
12.4.1实例构造函数……213
12.4.2静态构造函数…214
语句…
什么是语句…
表达式语句…
控制流语句…
1f语句…
if_else语句…
9.6switch语句…
运算符重载的限制…
运算符重载的示例…
分支示例……
程序集间的继承…
7.8成员访问修饰符…
10.3.1
程序集的私有方式部署…
10.8.1
10.8.2GAC内的并肩执行…
11.4.2 catch子句段…
11.7.2搜索调用栈的示例…
抽象成员…
7.10抽象类…
7.11密封类…
7.12静态类…
7.13扩展方法…
7.14外部方法…
第8章
8.1表达式…
8.2字面量…
8.3求值顺序…
8.4
8.5求余运算符…
8.6
8.7
8.8
8.9逻辑运算符…
8.10移位运算符…
8.11赋值运算符…
4目录
10.2命名空间…
10.3using指令……
10.4程序集的结构…
10.5程序集标识符…
10.6强命名程序集…
10.7
10.8共享程序集和GAC.
10.9配置文件
10.10延迟签名…
第11章异常….
11.1什么是异常…
11.2try语句…
11.3异常类…
11.4 catch子句…
11.5finally块…
11.6为异常寻找处理代码…
11.7更进一步搜索…
11.8抛出异常…
11.9不带异常对象的抛出…
第12章结构…
12.1什么是结构…
12.2结构是值类型…
12.3对结构赋值…
12.4构造函数和析构函数…
9.6.2 switch语句的补充…
9.6.3分支标签……
9.7
while循环…
9.8
do循环…
9.9for循环……
for语句中变量的有效范围…172
的多表达式……172
break语句…173
9.13.4 using语句的另一种形式…180
12.4.3构造函数和析构函数的总结…214
13.1.1设置底层类型和显式值….218
13.1.2隐式成员编号…219
13.2.1F1ags特性……222
13.2.2使用位标志的示例…223
14.1.1定义….-226
14.1.2重要细节…227
14.7.1显式初始化一维数组…231
14.7.2显式初始化矩形数组…232
14.7.3初始化矩形数组的语法点……232
14.7.4快捷语法…233
14.7.5隐式类型数组…233
14.7.6综合内容…234
14.8.1声明交错数组…235
14.8.2快捷实例化……235
14.8.3实例化交错数组…235
14.8.4交错数组中的子数组…236
14.10.1迭代变量是只读的.…239
9.9.2初始化语句和迭代表达式中
9.10跳转语句…
9.11
9.12go to语句…
9.13
9.14
第10章
9.10.2 continue语句…
标签语句…
9.11.1标签…
9.11.2标签语句的范围…
using语句…
9.13.1资源的包装使用…
9.13.2using语句的示例…
9.13.3多个资源和嵌套…
其他语句…
命名空间和程序集
10.1引用其他程序集…
12.5字段初始化是不允许的.
12.6结构是密封的……
12.7
装箱和取消装箱…
12.8结构作为返回类型和参数…
12.9关于结构的附加信息…
第13章:枚举….
13.1枚举.
13.2位标志…
13.3关于枚举的补充…
第14章数组…
14.1数组…
14.2数组的类型…
14.3数组是对象…
14.4一维数组和矩形数组…
14.5实例化一维数组或矩形数组…
14.6访问数组元素…
14.7初始化数组…
14.8交错数组…
14.9比较矩形数组和交错数组…
14.10for each语句…
数组继承的有用成员…
比较数组类型…
委托…
什么是委托…
声明委托类型…
创建委托对象…
赋值委托…
组合委托……
为委托增加方法…