C#图解教程

myblog_dhy 14 0 PDF 2019-10-03 13:10:37

《C#图解教程》是一本经典的C#入门书,不仅适合没有任何编程语言基础的初级读者,而且还是有VB、C++等语言基础的C#初学者的最佳选择。用图说话,最易学的C#教程,Amazon全五星盛誉,涵盖VisualC#2008和.NET3.5最新特性。作为.NET平台上最主要的编程语言,C#在不断地改进和完善,功能越来越强大。当然,复杂性也随之增加。令很多初学者不得其门而入。如何才能让更多人轻松地学习和掌握C#呢?《C#图解教程》作者总结了自己数十年软件开发和教学培训经验,创造了一种全新的可视化叙述方式。在书中,他通过大量图、表和代码,与简洁的文字完美结合,从底层运行原理的角度阐述了最新版C#和N谨将此书献给我的父母—Sl和Amy,并献给Sian和Sue译者序(一)书是知识的载体,是智慧的传播者。技术图书在技术的普及、发展过程中的作用是毋庸置疑的。在这个知识爆炸、信息技术迅猛发展的时代,技术图书的作用更加突出。我们比以往任何时候都需要关于新技术和新平台的参考资料。一本描述清晰、内容详细的书能使我们快速掌握这些技术。译者不才,自己无力写出这样的书,愿意以虫蚁之能,行搬运之事,将优秀外文书籍译成中文,以利于国人参考和学习,从而为技术传播尽自己的绵薄之力。C#和NET平台近年来迅速普及,已经成为很多公司使用的主要技术之一。有很多出色的应用都是使用C#开发的,包括很多Web20时代的网络应用。虽然NET平台目前还只能在 Windows操作系统下工作,但是这并没有妨碍它发展壮大。一方面是因为 Windows操作系统的普及程度已经给NET提供了巨大的发展空间;另一方面是因为NET确实是个优秀的平台,而且C#也确实算得上是新一代的优秀的面向对象编程语言。作为一个与时俱进的软件工程师,忽视C和NET是很不明智的。本书是一部极为出色的C#著作。正如本书作者所说,它不仅包含了入门的基础知识,而且同时还能作为开发过程中的参考书使用。书中使用了大量的示例和图表,使内容一目了然。即便是有经验的C样程序员,阅读这本书也会受益匪浅。在本书的翻译过程中,我尽量保持原书清晰明了的风格,并努力保证术语及用词的准确。由于能力有限,我虽已尽所能,但仍难免有不妥之处,望读者朋友海涵。感谢我的妻子毛毛!在我翻译本书的过程中,她承担了大部分的家务,并给予了我很多支持和鼓励。没有她的爱和付出,本书的翻译工作肯定不会进展得如此顺利。相信这本书一定对你有用!苏林2008年5月于上海译者序(二)NET经过近8年的发展后已经变得非常庞大,也非常成熟了,而且发展的速度越来越快。学好C并是在NET平台上构建一切应用的前提,因此,我强烈建议欲涉足NET的初学者无论如何都应该学习C并,并且要学好。说点题外话,很多人没有将NET框架、CLR和C#语言这三者之间的关系区分清楚,认为其版本号是一一对应的。其实,NET框架是一个独立发布的软件包,包括了CLR、类库以及相关的语言编译器等工具。C#代码经过编译之后在CLR环境中运行。由于NET30/3.5其实是NET20的扩展(只是增加了一些新的程序集),所以NET3035的CLR版本还是20。而且,NET3.0其实只扩展了WF、WPF、WCF、WCS等组件,并没有提供新的C#编译器,直到NET35中才打包了C#30的编译器。所以,NET框架、CLR和C样的版本之间的对应关系如下表所示:NET版本1.01.1203.035CLR版本1.01.l202,02C#版本LO202,03.0也就是说,对于那些不涉及新程序集的C#3.0新特性〔比如自动属性、匿名类型等)在NET20的环境中也可以运行,CLR对这些特性是一无所知的。言归正传,拿到本书的英文版后,我粗略地看了一下目录,认为此书是一本彻底面向初学者的基础书籍。在翻译了几章之后,才发现先前的认识不完全正确。此书和一般的面向初学者的C#书籍不太一样:口可能和作者的C++背景有关,作者喜欢从底层(比如内存布局)的角度来剖析一些知识点。这有助于读者在知其然的同时还能知其所以然,从而打下扎实的基础口书如其名,本书的特点就是有大量示意性的表格和插图,简洁明了,非常易于读者对知识点的理解。书中还有大量的范例代码,代码中也添加了很多注解,可以帮助读者理解代码的要点。口另外,本书绝对不是老版的旧酒装新瓶。C#30的所有新特性都完全地融合在其中,而不是在老版本基础上加一些关于新特性的章节。因此,如果你确实已经使用C#构建了很多应用或已经对C#2.0有所掌握,那么本书或许会对你非常有用,很多关于CLR本质的内容将能帮助你更深入地理解C井。由于时间关系,译者在翻译的过程中难免有疏漏。本书的第1~13章由苏林先生翻译,第14-25章由我翻译。欢迎对C#或NET感兴趣的朋友与我交流,我的邮箱是yzhu@dive.com,个人BLOG是htp:lovecherry,cnblogs.com。最后,预祝你在阅读本书之后能有所收获,编程快乐朱晔008年5月于上海刊本书的目的是讲授C#编程语言的基础知识和工作原理。大多数图书主要使用文字讲授编程。文字对于小说来说足够了,但对于编程语言中的很多重要概念,综合运用文字、图形和表格会更容易理解。我们中许多人都习惯于形象思维,而图形和表格有助于我们更清晰地理解概念。在几年的编程语言教学过程中,我发现是我在白板上画的图帮助学生最快地理解了我要传达的概念。然而,单是图表并不足以解释一种编程语言和平台。本书的目标是找到文字和图表的最佳结合,以使你对这种语言有透彻的理解,并且也让本书能当作参考工具使用。本书写给所有想要学习C#的人—从初学者到有经验的程序员。刚开始学编程的人会发现,书中全面讲述了基础知识:有经验的程序员会觉得,内容的叙述非常简洁,无需苦苦寻觅就能直接获得想要的信息。对于这两类程序员,内容本身都用图形化方式呈现,这种方式使这种语言更容易学习。请享受本书吧!致谢我想感谢Sian每天支持并鼓励我,我还想感谢我的父母、兄弟和姐妹,他们一直爱我并支持我我还想对Aprs朋友表达诚挚的感谢,他们与我一起工作并完成这本书。我真心感激他们理解并赏识我努力做的事情,并和我一起完成它。感谢你们所有人。目录第1章C#和NET框架……27,3注释类型总结…………181.1在NET之前……第3章类型、存储和变量1.1120世纪90年代后期的 windows编程+吾世+廿世量自面自目面国国日日国中日国日31CH程序是一组类型声明日日日a斗干日吾平普十日世十1.12下一代平台的目标…32类型是一种模板201.2进入 Microsoft . NEt……………233实例化类型………………………202.1NET框架的组成……34数据成员和函数成员……………………212.2大大改进的编程环境………335预定叉类型……11.3编译成CIL…36用户定义类型…………2314编译成本机代码并执行……3.7栈和堆……………2415CLR…637]栈…241.6CLI……1737.2堆……241.7缩写回顾838值类型和引用类型……………25第2章G#编程概述38.1存儲引用类型对象的成员…………26382C#类型的分类…………………2721一个简单的C样程序39变量………目日日4F千+ etenIm722标识符和关键字103.9.1变量声明………………………………27221命名约定………392多重变量声明2922.2关键字12393使用变量的值2923Main:程序的起始点………1224空白第4章类:基础301325语句出日e中中,,曹日目日和哥平+吾世+十Bm日a日画a山“1341类的概述…………………3025.1简单语向………………1342程序和类:一个快速的示例…22块…………………………1343声明类……26从程序中输出文本……………………1444类成员………………………322.6.1 Write……………1444.1字段…………………………322.6.2 Writeline国睡15442显式和隐式字段初始化…………332.63格式字符串…15443声明多个字段………………342.64多重标记和值…4.44方法………………………342.7注释………164.5创建变量和类的实例……………35271关于注释的补充…………………174.6为数据分配内存3527,2文档注释……………l74.7实例成员……362目录4.8访问修饰符……………………………3768,2属性示例…49从类的内部访问成员…………39683使用属性………………………794.10从类的外部访问成员…684属性和关联字段…4.11综合应用……“4+“4“6.8.5执行其他计算…………81第5章方法68.6只读和只写属性68.7计算只读属性示例…5.1方法的结构……………4368.8属性和数据库示例52本地变量…1目函目国由日中中.中,排456.89自动实现属性…52类型推断和var关键字456.8.10静态属性522嵌套块中的本地变量4669实例构造函数…8553本地常量47691带参数的枸造函数8654方法调用…eireitndna69.2默认构造函数5.5返回值50610静态构造函数………………8856参数…26.10静态构造函数示例88561形参36.102构造函数的可访问性……89562实参…………………53611对象初始化列表63带输入参数的方法示例612析构函数……57值参数…6121调用析构函数9158引用参数6.12.2标准清理模式9359输出参数…………………………58613比较构造函数和析构函数…………945.10参数数组日日+6.14 readonly修饰符…………………94510.1方法调用……616.15this关键字………………………9550.2数组作实参………616索引…………………………965.11参数类型总结…616.1什么是索引975.12栈帧++…64616.2索引和属性98513递归………656163声明索引………………98514方法重载目目日日a4+++当t666164set访问器…………………9第6章类进阶………………69616.5gt访问器…10061类成员………………616.6关于索引的补克…62实例类成员6.167为 Employee示例声明索引…10063静态字段…………………………76168另一个索引示例…64从类的外部访问静态成员……6169索引重载………………10264l静态宇段示例617访问器的访问修饰符……1031日日日日是.日斗+日t世+m………7368分部类和分部类型…日t画m642静态成员的生存期…1047365静态函数成员…74第7章类和继承10766其他静态类成员类型……………7571类继承……………………10767成员常量……………………………7572访问继承的成员………………………10868属性日日:日+“中十日自担里型目国国品和日日中777.3隐藏基类的成员…………………11068.1属性声明和访问器………7874基类访问………1I1目录375使用基类的引用……l12812条件运算符751虛方法和覆写方法………148.13一元算术运算符……………1527.52覆写标记为 override的方法…115814用户定义类型转换………1537.6构造函数的执行……………118815运算符重载…15576.I构造函数初始化语句……………1198151运算符重载的限制…15676,2类访问修饰符……1208152运算符重载的示例1577.7程序集间的继承121816 typeof运算符…15878成员访问修饰符…………123第9章语句……1617.81访问成员的区域………………………1237.82公有成员的可访问性……………12491什么是语句…“·“中·“··中·中中16l783私有成员的可访问性……1292表达式语句7.8.4受保护成员的可访问性…………12593控制流语句……………………163785内部成员的可访问性……94if语句teNna12678.6受保护内部成员的可访问性……1269.51f.else语句…………………1647.87成员访问修饰符的总结斗日a+曾+++当世量+世t+ ITEn12696 switch语句…………1657.9抽象成员……127961分支示例1667.10抽象类…………………………128952 Switch语句的补充……+1677.11密封类………………………129963分支标签7.12静态类………………………13097whie循环……………………………1697.13扩展方法重113098do循环…1697.14外部方法…13399for循环……170第8章表达式和运算符…………………13599.1fo语句中变量的有效范圈……17299.2初始化语句和选代表达式中8.1表达式日;日日4日子日斗干日晋吾+B+世世++日 tannan……135的多表达式8.2字面量神中·中中1369.10跳转语句…………………………1728.2.1整数字面量……………1379.101bre语句……………………17382.2实数字面量………1379.10.2 continue语句…+晋份 tre-rnTEn823字符字面量…………………138911标签语句……174824字符串字面量………………139911.1标签…1748.3求值顺序± trait.rr"tnrn■国国日1日面B国国国非。日面口日看自申着14091.2标签语句的范围175831优先级1419.12goto语句…1758.32结合性……………………………141913 using语句………1768.4简单算术运算符·142913.1资源的包装使用…1778.5求余运算符1429132usg语句的示例…………1788.6关系比较运算符和相等比较运算符……14393.3多个资源和嵌套…1798.7递增运算符和递减运算符…1459134 usIng语句的另一种形式8.8条件逻辑运算符…………………14694其他语句………………………1808.9逻辑运算符………………………1478.10移位运算符…148第10章命名空间和程序集……………1818.11赋值运算符…………………15010.1引用其他程序集…………1814目录102命名空间…………:……1841243构造函数和析构函数的总结…214102.1命名空间名称……………18612.5字段初始化是不允许的……21510.,2.2命名空间的补充………………187126结构是密封的…■日■自目福品审日。中……………21510.2.3命名空间跨文件伸展………188127装箱和取消装箱…………………21510.24嵌套命名空间………188128结构作为返回类型和参数………21510.3 usIng指令……………………189129关于结构的附加信息……………21510.31 usIng命名空间指令…………189第13章枚举…21710.3.2 usIng别名指令……l90104程序集的结构131枚举……17…19110.5程序集标识符………………1311设置底层类型和显式值………21810.6强命名程序集…………………19313.1,2隐式成员编号…………21910.7程序集的私有方式部署2位标志220…194132 Flags特性Tend:n_品a10.8共享程序集和GAC………………19422210.81把程序集安装到GAC…………1941322使用位标志的示例………22340.82GAC内的并肩执行……19513.3关于枚举的补充…,,……2410.9配置文件…………………196第14章数组…………………22610.10延迟签名…………19614.1数组………………………………226第11章异常………………19814.1.1定义………………………26111什么是异常…………………………19814.1.2重要细节………2711,2try语句…………19142数组的类型………227113异常类…143数组是对象…………228………………………:200114 catch子句…200144一维数组和矩形数组…………229114.1使用特定 catch子句的示例…201145实例化一维数组或矩形数组…229114.2 catch子句段…………………20214.6访问数组元素…………………………23011.5 final ly块…20314.7初始化数组23111.6为异常寻找处理代码14.71显式初始化一维数组………231申·,看日请图日20411.7更进一步搜索2041472显式初始化矩形数组23211.7.1一般法则………20514.73初始化矩形数组的语法点…232172搜索调用栈的示例14.74快捷语法“320611.8抛出异常……………*………………20714.75隐式类型数组………233119不带异常对象的抛出14.7.6综合内容……………………234208148交错数组第12章结构234由曹。着21014.8.1声明交错数组……………235121什么是结构………………21014.82快捷实例化”*7飞5122结构是值类型…21114.83实例化交错数组…………23512.3对结构赋值………………2121484交错数组中的子数组……23612.4构造函数和析构函数……+213149比较矩形数组和交错数组…………237124.l实例构造函数14.10 foreach语句…238124.2静态构造函数21414.10.1选代变量是只读的……239

用户评论
请输入评论内容
评分:
Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

绝对的好资源,深入浅出。适合新手和老手学习。

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

很好的学习资料

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

挺清晰的 对于新手可能稍微难了点 适合进阶一点的看

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

非常感谢,非常好。

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

入门可以,很好的学习材料

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

还没看,希望能够看懂。谢谢共享资源的各位。

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

资源很好 谢谢分享

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

不错,很实用的资料!

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

c#的基础教程

Generic placeholder image 卡了网匿名网友 2019-10-03 13:10:37

不错,正在学习!