标题：Accelerated C#2008 C#捷径教程
图书简介
作/译者：(美国)(Trey Nash)纳什 者 刘新军
出版社：人民邮电出版社
出版日期：2009年01月 
  [1]ISBN：9787115192585 [十位:7115192588] 
页数：444 
重约：0.653KG 
定价：￥59.00
内容提要
C# 3.0 提供了很多强大的特性,通过使用lambda 表达式、扩展方法和语言集成查询(LINQ),方便地引入了函数式编程,使C# 程序员如虎添翼。《Accelerated C#2008 C#捷径教程》通过许多精彩的示例介绍了每个特性,深入浅出地讲解了C# 语言的核心概念,以及如何聪明地应用C# 的习惯用法和面向对象的设计模式来挖掘C# 和CLR 的能力。
《Accelerated C#2008 C#捷径教程》适合有一定编程经验的程序员阅读。
图书目录
第1章 C#预览 11.1 C#和C++的区别 11.1.1 C# 11.1.2 C++ 11.1.3 CLR垃圾回收 21.2 C#程序示例 31.3 C# 2.0扩展特性概述 41.4 C# 3.0新特性概览 51.5 小结 6第2章 C#和CLR 72.1 CLR中的JIT编译器 72.2 程序集及程序集加载器 92.2.1 最小化程序的工作集 92.2.2 给程序集命名 92.2.3 加载程序集 102.3 元数据 102.4 交叉语言的兼容性 112.5 小结 12第3章 C#语法概述 133.1 C#是一门强类型的语言 133.2 表达式 143.3 语句和表达式 153.4 类型和变量 153.4.1 值类型 163.4.2 引用类型 193.4.3 默认变量初始化 203.4.4 隐式类型化局部变量 203.4.5 类型转换 223.4.6 as和is操作符 233.4.7 泛型 253.5 命名空间 263.5.1 定义命名空间 273.5.2 使用命名空间 283.6 控制流 293.6.1 if-else、while、do-while和for 293.6.2 switch 293.6.3 foreach 303.6.4 break、continue、goto、return和throw 313.7 小结 31第4章 类、结构和对象 324.1 类定义 334.1.1 字段 344.1.2 构造函数 364.1.3 方法 374.1.4 属性 384.1.5 封装 424.1.6 可访问性 454.1.7 接口 464.1.8 继承 474.1.9 密封类 534.1.10 抽象类 534.1.11 嵌套类 544.1.12 索引器 574.1.13 分部类 594.1.14 分部方法 594.1.15 静态类 614.1.16 保留的成员名字 624.2 值类型定义 634.2.1 构造函数 634.2.2 this的含义 654.2.3 终结器 684.2.4 接口 684.3 匿名类型 684.4 对象初始化器 714.5 装箱和拆箱 734.5.1 什么时候发生装箱 774.5.2 效率和混淆 784.6 System.Object 794.6.1 等同性及其意义 804.6.2 IComparable接口 814.7 创建对象 814.7.1 new关键字 814.7.2 字段初始化 824.7.3 静态(类)构造函数 834.7.4 实例构造函数和创建顺序 854.8 销毁对象 894.8.1 终结器 894.8.2 确定性的析构 904.8.3 异常处理 914.9 可清除对象 914.9.1 IDisposable接口 914.9.2 using关键字 934.10 方法参数类型 954.10.1 值参数 954.10.2 ref参数 954.10.3 out参数 974.10.4 参数数组 974.11 方法重载 984.12 继承和虚方法 984.12.1 虚方法和抽象方法 984.12.2 override和new方法 994.12.3 密封方法 1004.12.4 关于C#虚方法再啰嗦几句 1014.13 继承,包含和委托 1014.13.1 接口继承和类继承的选择 1014.13.2 委托和组合与继承 1024.14 小结 104第5章 接口和契约 1055.1 接口定义类型 1055.2 定义接口 1075.2.1 接口中可以有什么 1075.2.2 接口继承与成员隐藏 1085.3 实现接口 1105.3.1 隐式接口实现 1105.3.2 显式接口实现 1105.3.3 派生类中覆盖接口实现 1125.3.4 小心值类型实现接口的副作用 1155.4 接口成员匹配规则 1165.5 值类型的显示接口实现 1195.6 版本考虑 1215.7 契约 1225.7.1 类实现契约 1225.7.2 接口契约 1235.8 在接口和类之间选择 1245.9 小结 127第6章 重载操作符 1286.1 只因为:可以并不意味着应该 1286.2 重载操作符的类型和格式 1286.3 操作符不应该改变其操作数 1296.4 参数顺序有影响么 1306.5 重载加法运算符 1306.6 可重载的操作符 1316.6.1 比较操作符 1326.6.2 转换操作符 1346.6.3 布尔操作符 1366.7 小结 139第7章 异常处理和异常安全 1407.1 CLR如何对待异常 1407.2 C#里的异常处理机制 1407.2.1 抛出异常 1417.2.2 .NET 2.0开始的未处理异常的变化 1417.2.3 try语句语法预览 1427.2.4 重新抛出异常和转译异常 1447.2.5 finally代码块抛出的异常 1467.2.6 终结器抛出的异常 1467.2.7 静态构造函数抛出的异常 1477.3 谁应该处理异常 1487.4 避免使用异常来控制流程 1497.5 取得异常中立 1497.5.1 异常中立代码的基本结构 1497.5.2 受限执行区域 1547.5.3 临界终结器和SafeHandle 1567.6 创建定制的异常类 1597.7 使用分配的资源和异常 1617.8 提供回滚行为 1647.9 小结 167第8章 使用字符串 1688.1 字符串概述 1688.2 字符串字面量 1698.3 格式指定和全球化 1708.3.1 Object.ToString、IFormattable和CultureInfo 1708.3.2 创建和注册自定义CultureInfo类型 1718.3.3 格式化字符串 1738.3.4 Console.WriteLine和String. Format 1748.3.5 自定义类型的字符串格式化举例 1758.3.6 ICustomFormatter 1768.3.7 字符串比较 1788.4 处理来自外部的字符串 1798.5 StringBuilder 1818.6 使用正则表达式搜索字符串 1828.6.1 使用正则表达式搜索 1838.6.2 搜索和分组 1848.6.3 使用正则表达式替换文本 1878.6.4 正则表达式创建选项 1898.7 小结 191第9章 数组、容器类型和迭代器 1929.1 数组介绍 1929.1.1 隐式类型化数组 1939.1.2 类型的转换和协方差 1959.1.3 排序和搜索 1959.1.4 同步 1969.1.5 向量与数组 1969.2 多维矩形数组 1989.3 多维锯齿数组 1999.4 容器类型 2019.4.1 比较ICollectionT和ICollection 2019.4.2 容器同步 2029.4.3 列表 2039.4.4 字典 2039.4.5 集合 2049.4.6 System.Collections.ObjectModel 2049.4.7 效率 2079.5 IEnumerableT、IEnumeratorT、IEnumerable和IEnumerator 2089.6 迭代器 2119.7 容器初始化器 2209.8 小结 220第10章 委托,匿名方法和事件 22210.1 委托概览 22210.2 委托的创建和使用 22310.2.1 单委托 22310.2.2 委托链 22410.2.3 迭代委托链 22610.2.4 非绑定(公开实例)的委托 22710.3 事件 23010.4 匿名方法 23310.4.1 注意捕获变量的使用 23710.4.2 匿名方法作为委托参数绑定器 23910.5 Strategy模式 24310.6 小结 244第11章 泛型 24511.1 泛型和C++模板之间的区别 24611.2 泛型的效率和类型安全 24611.3 泛型的类型定义和构造类型 24811.3.1 泛型类和结构 24911.3.2 泛型接口 25111.3.3 泛型方法 25111.3.4 泛型委托 25311.3.5 泛型转换 25611.3.6 默认值表达式 25711.3.7 Nullable类型 25811.3.8 构造类型访问权限控制 26011.3.9 泛型和继承 26011.4 约束 26111.5 泛型系统容器 26611.6 泛型系统接口 26811.7 精选的问题和解决方案 26911.7.1 泛型类型中的转化和操作符 26911.7.2 动态地创建构造类型 27711.8 小结 279第12章 C#中的线程 28012.1 C#和.NET中的线程 28012.1.1 开始线程编程 28112.1.2 IOU模式和异步方法调用 28312.1.3 线程状态 28312.1.4 终止线程 28612.1.5 停止和唤醒休眠线程 28712.1.6 等待线程退出 28812.1.7 前台和后台线程 28812.1.8 线程本地存储 28912.1.9 非托管线程和COM套件如何适应 29212.2 线程间同步工作 29312.2.1 用Interlocked类实现轻量级的同步 29512.2.2 Monitor类 29912.2.3 锁对象 30712.2.4 信号量 31112.2.5 事件 31212.2.6 Win32的同步对象和WaitHandle 31312.3 使用线程池 31512.3.1 异步方法调用 31512.3.2 定时器 32212.4 小结 323第13章 C#规范形式探索 32413.1 引用类型的规范形式 32413.1.1 类默认是密封的 32513.1.2 使用非虚拟接口模式 32613.1.3 对象是否可克隆 32813.1.4 对象是否可清除 33313.1.5 对象需要终结器吗 33613.1.6 对象相等意味着什么 34213.1.7 如果重写了Equals方法,那么也应该重写GetHashCode方法 34813.1.8 对象支持排序吗 35013.1.9 对象需要形式化显示吗 35313.1.10 对象可以被转换吗 35613.1.11 在所有情况下都保证类型安全 35713.1.12 使用非可变的引用类型 36113.2 值类型的规范形式 36413.2.1 为了获得更好的性能而重写Equals方法 36413.2.2 值类型需要支持接口吗 36813.2.3 将接口成员和派生方法实现为类型安全的形式 36913.3 小结 37113.3.1 引用类型的检查单 37213.3.2 值类型的检查单 373第14章 扩展方法 37414.1 扩展方法介绍 37414.1.1 编译器如何发现扩展方法 37514.1.2 探究内部实现 37714.1.3 代码易读性与代码易懂性 37814.2 使用建议 37914.2.1 考虑扩展方法优先于继承 37914.2.2 分离的命名空间中的隔离扩展方法 38014.2.3 修改一个类型的契约可能会打破扩展方法 38114.3 转换 38114.4 链式操作 38514.5 自定义迭代器 38614.6 访问者模式 39214.7 小结 396第15章 lambda表达式 39715.1 lambda表达式介绍 39715.1.1 lambda表达式 39815.1.2 lambda语句 40215.2 表达式树 40315.2.1 对表达式的操作 40415.2.2 函数的数据表现 40515.3 lambda表达式的有益应用 40615.3.1 迭代器和生成器重访问 40615.3.2 闭包(变量捕获)和缓存 40915.3.3 currying 41315.3.4 匿名递归 41515.4 小结 416第16章 LINQ:语言集成查询 41716.1 连接数据的桥梁 41716.1.1 查询表达式 41816.1.2 再谈扩展方法和lambda表达式 42016.2 标准查询操作符 42016.3 C#查询关键字 42216.3.1 from子句和范围变量 42216.3.2 join子句 42316.3.3 where子句和过滤器 42516.3.4 orderby子句 42516.3.5 select子句和投影 42616.3.6 let子句 42716.3.7 group子句 42916.3.8 into子句和持续性 43116.4 偷懒的好处 43216.4.1 C#迭代器鼓励懒惰 43216.4.2 不能偷懒 43316.4.3 立即执行查询 43516.4.4 再谈表达式树 43516.5 函数式编程中的技术 43616.5.1 自定义标准查询操作符和延迟求值 43616.5.2 替换foreach语句 44316.6 小结 444[1]
编辑推荐与评论
如果你已经有一定C#或者其他语言的编程经验,就完全不用去读那些肤浅的入门书或者冗长繁复的大部头。《Accelerated C#2008 C#捷径教程》将为你提供一条快速掌握C#的捷径。作者在不大的篇幅里容纳了丰富扎实的内容,不仅全面涵盖了C#的语言特性,包括3.O引入的Lambda表达式、扩展方法和LlNQ等,总结了正确使用C#的习惯用法和设计模式。而且深入探讨了CLR。书中大量富于启发性的实例和经验之谈。更能让你的软件开发水平得到质的飞跃。
作者介绍
TreyNash,知名.NET技术专家。现于领先的无线设备提供商CSR公司担任主任工程师。负责蓝牙解决方案的开发。在转向.NET平台之前。他有丰富的COM,DCOM/ATL编程经验。[1]