C#图解教程.pdf

所需积分/C币:30 2018-03-14 14:35:26 42.65MB PDF
收藏 收藏
举报

非常适合初学者的一本书,非常好,讲解详细,C#初学必备,C#图解教程.pdf
谨将此书献给我的父母—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.0 1.1 20 3.0 35 CLR版本 1.0 1.l 20 2,0 2 C#版本 LO 20 2,0 3.0 也就是说,对于那些不涉及新程序集的C#3.0新特性〔比如自动属性、匿名类型等)在NET 20的环境中也可以运行,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注释类型总结…………18 1.1在NET之前…… 第3章类型、存储和变量 1.1120世纪90年代后期的 windows 编程 +吾世+廿世量自面自目面国国日日国中日国日 31CH程序是一组类型声明 日日日a斗干日吾平普十日世十 1.12下一代平台的目标… 32类型是一种模板 20 1.2进入 Microsoft . NEt…………… 2 33实例化类型………………………20 2.1NET框架的组成…… 34数据成员和函数成员……………………21 2.2大大改进的编程环境……… 3 35预定叉类型……1 1.3编译成CIL… 36用户定义类型 …………23 14编译成本机代码并执行…… 3.7栈和堆…………… 24 15CLR…6 37]栈… 24 1.6CLI……17 37.2堆…… 24 1.7缩写回顾 8 38值类型和引用类型……………25 第2章G#编程概述 38.1存儲引用类型对象的成员…………26 382C#类型的分类…………………27 21一个简单的C样程序 39变量……… 目日日4F千+ etenIm 7 22标识符和关键字 10 3.9.1变量声明………………………………27 221命名约定……… 392多重变量声明 29 22.2关键字 12 393使用变量的值 29 23Main:程序的起始点…… …12 24空白 第4章类:基础 30 13 25语句 出日e中中,,曹 日目日和哥平+吾世+十Bm日a日画a山“ 13 41类的概述…………………30 25.1简单语向………………13 42程序和类:一个快速的示例… 22块…………………………13 43声明类…… 26从程序中输出文本……………………14 44类成员………………………32 2.6.1 Write……………14 44.1字段…………………………32 2.6.2 Writeline 国睡 15 442显式和隐式字段初始化…………33 2.63格式字符串… 15 443声明多个字段………………34 2.64多重标记和值… 4.44方法………………………34 2.7注释……… 16 4.5创建变量和类的实例……………35 271关于注释的补充…………………17 4.6为数据分配内存 35 27,2文档注释 ……………l7 4.7实例成员 ……36 2目录 4.8访问修饰符……………………………37 68,2属性示例… 49从类的内部访问成员…………39 683使用属性………………………79 4.10从类的外部访问成员… 684属性和关联字段… 4.11综合应用…… “4+“4“ 6.8.5执行其他计算…… ……81 第5章方法 68.6只读和只写属性 68.7计算只读属性示例… 5.1方法的结构…………… 43 68.8属性和数据库示例 52本地变量… 1目函目国由日中中.中,排 45 6.89自动实现属性… 52类型推断和var关键字 45 6.8.10静态属性 522嵌套块中的本地变量 46 69实例构造函数… 85 53本地常量 47 691带参数的枸造函数 86 54方法调用… eireitndna 69.2默认构造函数 5.5返回值 50 610静态构造函数………………88 56参数… 2 6.10静态构造函数示例 88 561形参 3 6.102构造函数的可访问性……89 562实参…………………53 611对象初始化列表 63带输入参数的方法示例 612析构函数…… 57值参数… 6121调用析构函数 91 58引用参数 6.12.2标准清理模式 93 59输出参数…………………………58 613比较构造函数和析构函数…………94 5.10参数数组 日日+ 6.14 readonly修饰符…………………94 510.1方法调用… …61 6.15this关键字………………………95 50.2数组作实参……… 616索引…………………………96 5.11参数类型总结… 616.1什么是索引 97 5.12栈帧 ++…64 616.2索引和属性 98 513递归 ………65 6163声明索引………………98 514方法重载 目目日日a4+++当t 66 6164set访问器…………………9 第6章类进阶………………69 616.5gt访问器… 100 61类成员……………… 616.6关于索引的补克… 62实例类成员 6.167为 Employee示例声明索引…100 63静态字段…………………………7 6168另一个索引示例… 64从类的外部访问静态成员…… 6169索引重载………………102 64l静态宇段示例 617访问器的访问修饰符……103 1日日日日是.日斗+日t世+m ………73 68分部类和分部类型… 日t画m 642静态成员的生存期 …104 73 65静态函数成员… 74 第7章类和继承 107 66其他静态类成员类型……………75 71类继承……………………107 67成员常量……………………………75 72访问继承的成员………………………108 68属性 日日:日+“中十日自担里型目国国品和日日中 77 7.3隐藏基类的成员…………………110 68.1属性声明和访问器…… …78 74基类访问……… 1I1 目录3 75使用基类的引用… …l12 812条件运算符 751虛方法和覆写方法………148.13一元算术运算符…… ………152 7.52覆写标记为 override的方法…115 814用户定义类型转换………153 7.6构造函数的执行…… ………118 815运算符重载 …155 76.I构造函数初始化语句……………119 8151运算符重载的限制 …156 76,2类访问修饰符……120 8152运算符重载的示例 157 7.7程序集间的继承 121 816 typeof运算符 …158 78成员访问修饰符…… ……123 第9章语句……161 7.81访问成员的区域………………………123 7.82公有成员的可访问性……………124 91什么是语句… “·“中·“··中·中中 16l 783私有成员的可访问性…… 12 92表达式语句 7.8.4受保护成员的可访问性…………125 93控制流语句……………………163 785内部成员的可访问性…… 94if语句 teNna 126 78.6受保护内部成员的可访问性……126 9.51f.else语句…………………164 7.87成员访问修饰符的总结 斗日a+曾+++当世量+世t+ ITEn 126 96 switch语句……… …165 7.9抽象成员…… 127 961分支示例 166 7.10抽象类…………………………128 952 Switch语句的补充 ……+167 7.11密封类………………………129 963分支标签 7.12静态类………………………130 97whie循环……………………………169 7.13扩展方法 重1 130 98do循环 …169 7.14外部方法… 133 99for循环… …170 第8章表达式和运算符…………………135 99.1fo语句中变量的有效范圈……172 99.2初始化语句和选代表达式中 8.1表达式 日;日日4日子日斗干日晋吾+B+世世++日 tannan ……135 的多表达式 8.2字面量 神中·中中 136 9.10跳转语句… ………………………172 8.2.1整数字面量…………… 137 9.101bre语句……………………173 82.2实数字面量……… 137 9.10.2 continue语句… +晋份 tre-rnTEn 823字符字面量…………………138 911标签语句…… 174 824字符串字面量………………139 911.1标签… 174 8.3求值顺序 ± trait.rr"tnrn ■国国日1日面B国国国非。日面口日看自申着 140 91.2标签语句的范围 175 831优先级 141 9.12goto语句 …175 8.32结合性……………………………141 913 using语句………176 8.4简单算术运算符· 142 913.1资源的包装使用… 177 8.5求余运算符 142 9132usg语句的示例…………178 8.6关系比较运算符和相等比较运算符……143 93.3多个资源和嵌套 …179 8.7递增运算符和递减运算符… 145 9134 usIng语句的另一种形式 8.8条件逻辑运算符…………………146 94其他语句………………………180 8.9逻辑运算符………………………147 8.10移位运算符… 148 第10章命名空间和程序集……………181 8.11赋值运算符…………………150 10.1引用其他程序集……… …181 4目录 102命名空间 …………:……184 1243构造函数和析构函数的总结…214 102.1命名空间名称……………186 12.5字段初始化是不允许的……215 10.,2.2命名空间的补充………………187 126结构是密封的… ■日■自目福品审日。中 ……………215 10.2.3命名空间跨文件伸展………188 127装箱和取消装箱…………………215 10.24嵌套命名空间………188 128结构作为返回类型和参数………215 10.3 usIng指令……………………189 129关于结构的附加信息……………215 10.31 usIng命名空间指令…………189 第13章枚举… 217 10.3.2 usIng别名指令… …l90 104程序集的结构 131枚举……17 …191 10.5程序集标识符……………… 1311设置底层类型和显式值………218 10.6强命名程序集…………………193 13.1,2隐式成员编号…………219 10.7程序集的私有方式部署 2位标志 220 …194 132 Flags特性 Tend:n_品a 10.8共享程序集和GAC………………194 222 10.81把程序集安装到GAC…………194 1322使用位标志的示例………223 40.82GAC内的并肩执行……195 13.3关于枚举的补充… ,,……24 10.9配置文件…………………196 第14章数组…………………226 10.10延迟签名… ………196 14.1数组………………………………226 第11章异常………………198 14.1.1定义………………………26 111什么是异常…………………………198 14.1.2重要细节………27 11,2try语句…………19 142数组的类型…… …227 113异常类… 143数组是对象………… 228 ………………………:200 114 catch子句… 200 144一维数组和矩形数组…………229 114.1使用特定 catch子句的示例…201 145实例化一维数组或矩形数组… 229 114.2 catch子句段…………………202 14.6访问数组元素…………………………230 11.5 final ly块…203 14.7初始化数组 231 11.6为异常寻找处理代码 14.71显式初始化一维数组………231 申·,看日请图日 204 11.7更进一步搜索 204 1472显式初始化矩形数组 232 11.7.1一般法则………205 14.73初始化矩形数组的语法点…232 172搜索调用栈的示例 14.74快捷语法“3 206 11.8抛出异常……………*………………207 14.75隐式类型数组………233 119不带异常对象的抛出 14.7.6综合内容……………………234 208 148交错数组 第12章结构 234 由曹。着 210 14.8.1声明交错数组…… ………235 121什么是结构………………210 14.82快捷实例化 ”*7飞5 122结构是值类型 …211 14.83实例化交错数组…………235 12.3对结构赋值………………212 1484交错数组中的子数组……236 12.4构造函数和析构函数… …+213 149比较矩形数组和交错数组…………237 124.l实例构造函数 14.10 foreach语句… 238 124.2静态构造函数 214 14.10.1选代变量是只读的……239

...展开详情
试读 127P C#图解教程.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    C#图解教程.pdf 30积分/C币 立即下载
    1/127
    C#图解教程.pdf第1页
    C#图解教程.pdf第2页
    C#图解教程.pdf第3页
    C#图解教程.pdf第4页
    C#图解教程.pdf第5页
    C#图解教程.pdf第6页
    C#图解教程.pdf第7页
    C#图解教程.pdf第8页
    C#图解教程.pdf第9页
    C#图解教程.pdf第10页
    C#图解教程.pdf第11页
    C#图解教程.pdf第12页
    C#图解教程.pdf第13页
    C#图解教程.pdf第14页
    C#图解教程.pdf第15页
    C#图解教程.pdf第16页
    C#图解教程.pdf第17页
    C#图解教程.pdf第18页
    C#图解教程.pdf第19页
    C#图解教程.pdf第20页

    试读已结束,剩余107页未读...

    30积分/C币 立即下载 >