词条 | C#捷径教程 |
释义 | C#(C Sharp)是微软(Microsoft)为。NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。C sharp(音标 ʃɑ:p )(又被简称为"C#")是微软公司在二OOO年六月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。 书名:C#捷径教程 作者:(美国)(TreyNash)纳什 ISBN:9787115192585 定价:59.00 元 出版社:人民邮电出版社 出版时间:2009 开本:16 内容简介C#3.0提供了很多强大的特性,通过使用lambda表达式、扩展方法和语言集成查询(LINQ),方便地引入了函数式编程,使C#程序员如虎添翼。《#捷径教程》通过许多精彩的示例介绍了每个特性,深入浅出地讲解了C#语言的核心概念,以及如何聪明地应用C#的习惯用法和面向对象的设计模式来挖掘C#和CLR的能力。 《#捷径教程》适合有一定编程经验的程序员阅读。C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。 作者简介TreyNash,知名.NET技术专家。现于领先的无线设备提供商CSR公司担任主任工程师。负责蓝牙解决方案的开发。在转向.NET平台之前。他有丰富的COM,DCOM/ATL编程经验。 编辑推荐如果你已经有一定C#或者其他语言的编程经验,就完全不用去读那些肤浅的入门书或者冗长繁复的大部头。《C#捷径教程》将为你提供一条快速掌握C#的捷径。 作者在不大的篇幅里容纳了丰富扎实的内容,不仅全面涵盖了C#的语言特性,包括3.O引入的Lambda表达式、扩展方法和LlNQ等,总结了正确使用C#的习惯用法和设计模式。而且深入探讨了CLR。书中大量富于启发性的实例和经验之谈。更能让你的软件开发水平得到质的飞跃。 好评如潮的C#实战图书 汲取.NET技术精髓的捷径 专章讲述习惯用法与设计模式 目录第1章 C#预览 1 1.1C#和C++的区别 1 1.1.1C# 1 1.1.2C++ 1 1.1.3CLR垃圾回收 2 1.2C#程序示例 3 1.3C#2.0扩展特性概述 4 1.4C#3.0新特性概览 5 1.5小结 6 第2章 C#和CLR 7 2.1CLR中的JIT编译器 7 2.2程序集及程序集加载器 9 2.2.1最小化程序的工作集 9 2.2.2给程序集命名 9 2.2.3加载程序集 10 2.3元数据 10 2.4交叉语言的兼容性 11 2.5小结 12 第3章 C#语法概述 13 3.1C#是一门强类型的语言 13 3.2表达式 14 3.3语句和表达式 15 3.4类型和变量 15 3.4.1值类型 16 3.4.2引用类型 19 3.4.3默认变量初始化 20 3.4.4隐式类型化局部变量 20 3.4.5类型转换 22 3.4.6as和is操作符 23 3.4.7泛型 25 3.5命名空间 26 3.5.1定义命名空间 27 3.5.2使用命名空间 28 3.6控制流 29 3.6.1if-else、while、do-while和for 29 3.6.2switch 29 3.6.3foreach 30 3.6.4break、continue、goto、return和throw 31 3.7小结 31 第4章 类、结构和对象 32 4.1类定义 33 4.1.1字段 34 4.1.2构造函数 36 4.1.3方法 37 4.1.4属性 38 4.1.5封装 42 4.1.6可访问性 45 4.1.7接口 46 4.1.8继承 47 4.1.9密封类 53 4.1.10抽象类 53 4.1.11嵌套类 54 4.1.12索引器 57 4.1.13分部类 59 4.1.14分部方法 59 4.1.15静态类 61 4.1.16保留的成员名字 62 4.2值类型定义 63 4.2.1构造函数 63 4.2.2this的含义 65 4.2.3终结器 68 4.2.4接口 68 4.3匿名类型 68 4.4对象初始化器 71 4.5装箱和拆箱 73 4.5.1什么时候发生装箱 77 4.5.2效率和混淆 78 4.6System.Object 79 4.6.1等同性及其意义 80 4.6.2IComparable接口 81 4.7创建对象 81 4.7.1new关键字 81 4.7.2字段初始化 82 4.7.3静态(类)构造函数 83 4.7.4实例构造函数和创建顺序 85 4.8销毁对象 89 4.8.1终结器 89 4.8.2确定性的析构 90 4.8.3异常处理 91 4.9可清除对象 91 4.9.1IDisposable接口 91 4.9.2using关键字 93 4.10方法参数类型 95 4.10.1值参数 95 4.10.2ref参数 95 4.10.3out参数 97 4.10.4参数数组 97 4.11方法重载 98 4.12继承和虚方法 98 4.12.1虚方法和抽象方法 98 4.12.2override和new方法 99 4.12.3密封方法 100 4.12.4关于C#虚方法再啰嗦几句 101 4.13继承,包含和委托 101 4.13.1接口继承和类继承的选择 101 4.13.2委托和组合与继承 102 4.14小结 104 第5章 接口和契约 105 5.1 接口定义类型 105 5.2 定义接口 107 5.2.1 接口中可以有什么 107 5.2.2 接口继承与成员隐藏 108 5.3 实现接口 110 5.3.1 隐式接口实现 110 5.3.2 显式接口实现 110 5.3.3 派生类中覆盖接口实现 112 5.3.4 小心值类型实现接口的副作用 115 5.4 接口成员匹配规则 116 5.5 值类型的显示接口实现 119 5.6 版本考虑 121 5.7 契约 122 5.7.1 类实现契约 122 5.7.2 接口契约 123 5.8 在接口和类之间选择 124 5.9 小结 127 第6章 重载操作符 128 6.1 只因为:可以并不意味着应该 128 6.2 重载操作符的类型和格式 128 6.3 操作符不应该改变其操作数 129 6.4 参数顺序有影响么 130 6.5 重载加法运算符 130 6.6 可重载的操作符 131 6.6.1 比较操作符 132 6.6.2 转换操作符 134 6.6.3 布尔操作符 136 6.7 小结 139 第7章 异常处理和异常安全 140 7.1 CLR如何对待异常 140 7.2 C#里的异常处理机制 140 7.2.1 抛出异常 141 7.2.2 .NET2.0开始的未处理异常的变化 141 7.2.3 try语句语法预览 142 7.2.4重新抛出异常和转译异常 144 7.2.5 finally代码块抛出的异常 146 7.2.6 终结器抛出的异常 146 7.2.7 静态构造函数抛出的异常 147 7.3 谁应该处理异常 148 7.4 避免使用异常来控制流程 149 7.5 取得异常中立 149 7.5.1 异常中立代码的基本结构 149 7.5.2 受限执行区域 154 7.5.3 临界终结器和SafeHandle 156 7.6 创建定制的异常类 159 7.7 使用分配的资源和异常 161 7.8 提供回滚行为 164 7.9 小结 167 第8章 使用字符串 168 8.1 字符串概述 168 8.2 字符串字面量 169 8.3 格式指定和全球化 170 8.3.1 Object.ToString、IFormattable和CultureInfo 170 8.3.2 创建和注册自定义CultureInfo类型 171 8.3.3 格式化字符串 173 8.3.4 Console.WriteLine和String.Format 174 8.3.5 自定义类型的字符串格式化举例 175 8.3.6 ICustomFormatter 176 8.3.7 字符串比较 178 8.4 处理来自外部的字符串 179 8.5 StringBuilder 181 8.6 使用正则表达式搜索字符串 182 8.6.1 使用正则表达式搜索 183 8.6.2 搜索和分组 184 8.6.3 使用正则表达式替换文本 187 8.6.4 正则表达式创建选项 189 8.7 小结 191 第9章 数组、容器类型和迭代器 192 9.1 数组介绍 192 9.1.1 隐式类型化数组 193 9.1.2 类型的转换和协方差 195 9.1.3 排序和搜索 195 9.1.4 同步 196 9.1.5 向量与数组 196 9.2 多维矩形数组 198 9.3 多维锯齿数组 199 9.4 容器类型 201 9.4.1 比较ICollectionT和ICollection 201 9.4.2 容器同步 202 9.4.3 列表 203 9.4.4 字典 203 9.4.5 集合 204 9.4.6 System.Collections.ObjectModel 204 9.4.7 效率 207 9.5 IEnumerableT、IEnumeratorT、IEnumerable和IEnumerator 208 9.6 迭代器 211 9.7 容器初始化器 220 9.8 小结 220 第10章 委托,匿名方法和事件 222 10.1 委托概览 222 10.2 委托的创建和使用 223 10.2.1 单委托 223 10.2.2 委托链 224 10.2.3 迭代委托链 226 10.2.4 非绑定(公开实例)的委托 227 10.3 事件 230 10.4 匿名方法 233 10.4.1 注意捕获变量的使用 237 10.4.2 匿名方法作为委托参数绑定器 239 10.5 Strategy模式 243 10.6 小结 244 第11章 泛型 245 11.1 泛型和C++模板之间的区别 246 11.2 泛型的效率和类型安全 246 11.3 泛型的类型定义和构造类型 248 11.3.1 泛型类和结构 249 11.3.2 泛型接口 251 11.3.3 泛型方法 251 11.3.4 泛型委托 253 11.3.5 泛型转换 256 11.3.6 默认值表达式 257 11.3.7 Nullable类型 258 11.3.8 构造类型访问权限控制 260 11.3.9 泛型和继承 260 11.4 约束 261 11.5 泛型系统容器 266 11.6 泛型系统接口 268 11.7 精选的问题和解决方案 269 11.7.1 泛型类型中的转化和操作符 269 11.7.2 动态地创建构造类型 277 11.8 小结 279 第12章 C#中的线程 280 12.1 C#和.NET中的线程 280 12.1.1 开始线程编程 281 12.1.2 IOU模式和异步方法调用 283 12.1.3 线程状态 283 12.1.4 终止线程 286 12.1.5 停止和唤醒休眠线程 287 12.1.6 等待线程退出 288 12.1.7前台和后台线程 288 12.1.8 线程本地存储 289 12.1.9 非托管线程和COM套件如何适应 292 12.2 线程间同步工作 293 12.2.1 用Interlocked类实现轻量级的同步 295 12.2.2 Monitor类 299 12.2.3 锁对象 307 12.2.4 信号量 311 12.2.5 事件 312 12.2.6 Win32的同步对象和WaitHandle 313 12.3 使用线程池 315 12.3.1 异步方法调用 315 12.3.2 定时器 322 12.4 小结 323 第13章 C#规范形式探索 324 13.1 引用类型的规范形式 324 13.1.1 类默认是密封的 325 13.1.2 使用非虚拟接口模式 326 13.1.3 对象是否可克隆 328 13.1.4 对象是否可清除 333 13.1.5 对象需要终结器吗 336 13.1.6 对象相等意味着什么 342 13.1.7 如果重写了Equals方法,那么也应该重写GetHashCode方法 348 13.1.8 对象支持排序吗 350 13.1.9 对象需要形式化显示吗 353 13.1.10 对象可以被转换吗 356 13.1.11 在所有情况下都保证类型安全 357 13.1.12 使用非可变的引用类型 361 13.2 值类型的规范形式 364 13.2.1 为了获得更好的性能而重写Equals方法 364 13.2.2 值类型需要支持接口吗 368 13.2.3 将接口成员和派生方法实现为类型安全的形式 369 13.3 小结 371 13.3.1 引用类型的检查单 372 13.3.2 值类型的检查单 373 第14章 扩展方法 374 14.1 扩展方法介绍 374 14.1.1 编译器如何发现扩展方法 375 14.1.2 探究内部实现 377 14.1.3 代码易读性与代码易懂性 378 14.2 使用建议 379 14.2.1 考虑扩展方法优先于继承 379 14.2.2 分离的命名空间中的隔离扩展方法 380 14.2.3 修改一个类型的契约可能会打破扩展方法 381 14.3 转换 381 14.4 链式操作 385 14.5 自定义迭代器 386 14.6 访问者模式 392 14.7 小结 396 第15章 lambda表达式 397 15.1 lambda表达式介绍 397 15.1.1 lambda表达式 398 15.1.2 lambda语句 402 15.2 表达式树 403 15.2.1 对表达式的操作 404 15.2.2 函数的数据表现 405 15.3 lambda表达式的有益应用 406 15.3.1 迭代器和生成器重访问 406 15.3.2 闭包(变量捕获)和缓存 409 15.3.3 currying 413 15.3.4 匿名递归 415 15.4 小结 416 第16章 LINQ:语言集成查询 417 16.1 连接数据的桥梁 417 16.1.1 查询表达式 418 16.1.2 再谈扩展方法和lambda表达式 420 16.2 标准查询操作符 420 16.3 C#查询关键字 422 16.3.1 from子句和范围变量 422 16.3.2 join子句 423 16.3.3 where子句和过滤器 425 16.3.4 orderby子句 425 16.3.5 select子句和投影 426 16.3.6 let子句 427 16.3.7 group子句 429 16.3.8 into子句和持续性 431 16.4 偷懒的好处 432 16.4.1 C#迭代器鼓励懒惰 432 16.4.2 不能偷懒 433 16.4.3 立即执行查询 435 16.4.4 再谈表达式树 435 16.5 函数式编程中的技术 436 16.5.1 自定义标准查询操作符和延迟求值 436 16.5.2 替换foreach语句 443 16.6 小结 444 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。