第4版 C#程式设计语言


第4版 C#程式设计语言

文章插图
C#程式设计语言(第4版)【第4版 C#程式设计语言】《C#程式设计语言(第4版)》是2011年8月1日机械工业出版社出版的图书,作者是海杰尔斯伯格 。本书结合了快速套用开发语言的高效和JC/C++语言的强大 。C#4.0是对C#3.0的进一步完善和扩展,它在C#3.0的基础上引入了以动态语言为主的新特色 。
基本介绍书名:C#程式设计语言(第4版)
作者:海杰尔斯伯格
页数:559页
装帧:平装
基本信息作者:海杰尔斯伯格(Anders Hejlsberg),Mads Torgersen,Scott Wiltamuth,等 (作者), 陈宝国,黄俊莲,马燕新 (译者)出版社: 机械工业出版社; 第1版 (2011年8月1日)外文书名: The C# Programming Language Fourth Edition丛书名: 计算机科学丛书平装: 559页正文语种: 简体中文开本: 16ISBN: 9787111347781条形码: 9787111347781产品尺寸及重量: 26 x 18.2 x 2.6 cm ; 1 Kg内容简介《C#程式设计语言(原书第4版)》由C#的缔造者Anders Hejlsberg和他的同事们合着,全部内容都更新到了C#4.0版 。《C#程式设计语言(原书第4版)》提供了C#4.0语言完整的规格说明、参考资料、範例代码和来自12位卓越的C#师的详细注解 。这些注解所达到的深度和广度在其他书中难得一见 。《C#程式设计语言(原书第4版)》的正文介绍了C#概念,而这些恰到好处的注解则解释了为什幺这些特性是重要的,应该怎幺使用它们,它们和其他语言的关係是什幺,甚至它们是如何演化而来的 。对任何希望深入理解C#的程式设计师来说,《C#程式设计语言(原书第4版)》都是不容错过的经典参考书 。编辑推荐《C#程式设计语言(原书第4版)》:结合了快速套用开发语言的高效和C/C++语言的强大 。《C#程式设计语言(原书第4版)》全部内容更新到C#4.0版,提供了C#4.0语言的完整规範、参考资料、範例代码和来自12位卓越的C#大师的详细注解 。这些注解所达到的深度和广度在其他书中难得一见 。C#4.0新添加动态绑定、命名和可选参数以及协变和逆变泛型等特性,恰到好处的注解解释了这些特性的重要性、使用方法、与其他语言的关係等 。对任何希望深入理解C#的程式设计师来说.《C#程式设计语言(原书第4版)》都是不容错过的经典书籍 。媒体推荐据我的经验,我敢说每个程式设计师在读本书的时候都至少会有一次“啊,原来如此”的感叹,它能让你的编程水平更上一层楼 。——选自Don Box的序言本书为.NET专业开发人员提供了很好的参考 。它涵盖了所有基础知识,从专家观点到参考,再到用法 。本书是想要扩充知识和专业技能的开发人员的重要参考读物 。——John Montgomery,微软开发部首席团队经理作者简介作者:(美国)海杰尔斯伯格(Anders Hejlsberg) (美国)Mads Torgersen (美国)Scott Wiltamuth 等 译者:陈宝国 黄俊莲 马燕新海杰尔斯伯格(Anders Hejlsberg),编程界的传奇人物 。他是C#语言的架构师,同时也是微软技术专家 。Mads Torgersen是微软C#的项目经理,负责日常语言设计工作以及维护C#语言的规範 。Scott Wiltamuth是Visual Studio Professional团队的合作项目主管 。他在微软参与过OLE Automation、Visual Basic、VBScript、JScript、Visual C++和Visual C#等开发工具的开发工作 。Peter Golde作为微软在ECMA委员会(这个委员会负责C#的标準化工作)的主要代表,领导实现了编译器并参与了C#语言的设计工作 。目录译者序序言前言作者简介第1章 介绍1.1 hello,world1.2 程式结构1.3 类型和变数1.4 表达式1.5 语句1.6 类和对象1.6.1 成员1.6.2 访问控制1.6.3 类型参数1.6.4 基类1.6.5 栏位1.6.6 方法1.6.7 其他函式成员1.7 结构1.8 数组1.9 接口1.10 枚举1.11 委託1.12 特性第2章 词法结构2.1 程式2.2 文法2.2.1 文法表示法2.2.2 词法文法2.2.3 语法文法2.3 词法分析2.3.1 行终结符2.3.2 注释2.3.3 空白符2.4 标记2.4.1 unicode字元转义序列2.4.2 标识符2.4.3 关键字2.4.4 字面量2.4.5 操作符和标点符号2.5 预处理指令2.5.1 条件编译符号2.5.2 预处理表达式2.5.3 声明指令2.5.4 条件编译指令2.5.5 诊断指令2.5.6 区域指令2.5.7 行指令2.5.8 编译指示指令第3章 基本概念3.1 应用程式起始3.2 应用程式终止3.3 声明3.4 成员3.4.1 命名空间成员3.4.2 结构成员3.4.3 枚举成员3.4.4 类成员3.4.5 接口成员 3.4.6 数组成员3.4.7 委託成员3.5 成员访问3.5.1 声明可访问性3.5.2 可访问域3.5.3 实例成员的保护访问3.5.4 访问限制3.6 签名和重载3.7 作用域3.7.1 名字隐藏3.8 命名空间和类型名3.8.1 完全限定名3.9 自动化记忆体管理3.10 执行顺序第4章 类型4.1 值类型4.1.1 system.valuetype类型4.1.2 默认构造函式4.1.3 构造类型4.1.4 简单类型4.1.5 整数类型4.1.6 浮点数类型4.1.7 decimal类型4.1.8 bool类型4.1.9 枚举类型4.1.10 可空值类型4.2 引用类型4.2.1 类类型4.2.2 object类型4.2.3 dynamic类型4.2.4 string类型4.2.5 接口类型4.2.6 数组类型4.2.7 委託类型4.3 装箱和拆箱4.3.1 装箱转换4.3.2 拆箱转换4.4 构造类型4.4.1 类型实参4.4.2 开放式和封闭式类型4.4.3 绑定和未绑定类型4.4.4 满足限制4.5 类型参数4.6 表达式树类型4.7 dynamic类型第5章 变数5.1 变数类别5.1.1 静态变数5.1.2 实例变数5.1.3 数组元素5.1.4 值参数5.1.5 引用参数5.1.6 输出参数5.1.7 局部变数5.2 默认值5.3 明确赋值5.3.1 初始赋值的变数5.3.2 未赋初值的变数5.3.3 确定明确赋值的精确规则5.4 变数引用5.5 变数引用的原子性第6章 转换6.1 隐式转换6.1.1 标识转换6.1.2 隐式数字转换6.1.3 隐式枚举转换6.1.4 隐式可空值转换6.1.5 null字面量转换6.1.6 隐式引用转换6.1.7 装箱转换6.1.8 隐式动态转换6.1.9 隐式常量表达式转换6.1.10 带类型参数的隐式转换6.1.11 自定义隐式转换6.1.12 匿名函式转换和方法组转换6.2 显式转换6.2.1 显式数字转换6.2.2 显式枚举转换 6.2.3 显式可空值转换6.2.4 显式引用转换6.2.5 拆箱转换6.2.6 显式动态转换6.2.7 带类型参数的显式转换6.2.8 自定义显式转换6.3 标準转换6.3.1 标準隐式转换6.3.2 标準显式转换6.4 自定义转换6.4.1 允许的自定义转换6.4.2 提升转换操作符6.4.3 自定义转换的计算6.4.4 自定义隐式转换6.4.5 自定义显式转换6.5 匿名函式转换6.5.1 匿名函式到委託类型转换的计算6.5.2 匿名函式到表达式树类型转换的计算6.5.3 实现举例6.6 方法组转换第7章 表达式7.1 表达式分类7.1.1 表达式的值7.2 静态和动态绑定7.2.1 绑定期7.2.2 动态绑定7.2.3 组成表达式的类型7.3 操作符7.3.1 操作符优先权和结合性7.3.2 操作符重载7.3.3 一元操作符重载决策7.3.4 二元操作符重载决策7.3.5 候选自定义操作符7.3.6 数字提升7.3.7 提升操作符7.4 成员查找7.4.1 基础类型7.5 函式成员7.5.1 参数列表7.5.2 类型推导7.5.3 重载决策7.5.4 动态重载决策的编译期检查7.5.5 函式成员调用7.6 基础表达式7.6.1 字面量7.6.2 简单名字7.6.3 括弧表达式7.6.4 成员访问7.6.5 调用表达式7.6.6 元素访问7.6.7 this访问7.6.8 base访问7.6.9 后缀递增和递减操作符7.6.10 new操作符7.6.11 typeof操作符7.6.12 checked和unchecked操作符7.6.13 默认值表达式7.6.14 匿名方法表达式7.7 一元操作符7.7.1 一元加号操作符7.7.2 一元减号操作符7.7.3 逻辑否操作符7.7.4 按位求补操作符7.7.5 前缀递增和递减操作符7.7.6 转换表达式7.8 算术操作符7.8.1 乘法操作符7.8.2 除法操作符7.8.3 求余操作符7.8.4 加法操作符7.8.5 减法操作符7.9 移位操作符7.10 关係和类型测试操作符7.10.1 整数比较操作符7.10.2 浮点数比较操作符7.10.3 小数比较操作符7.10.4 布尔值相等操作符 7.10.5 枚举比较操作符7.10.6 引用类型相等操作符7.10.7 字元串相等操作符7.10.8 委託相等操作符7.10.9 相等操作符和null7.10.10 is操作符7.10.11 as操作符7.11 逻辑操作符7.11.1 整数逻辑操作符7.11.2 枚举逻辑操作符7.11.3 布尔逻辑操作符7.11.4 可空值布尔逻辑操作符7.12 条件逻辑操作符7.12.1 布尔条件逻辑操作符7.12.2 用户自定义条件逻辑操作符7.13 null拼接操作符7.14 条件操作符7.15 匿名函式表达式7.15.1 匿名函式签名7.15.2 匿名函式主体7.15.3 重载决策7.15.4 匿名函式和动态绑定7.15.5 外部变数7.15.6 匿名函式表达式的计算7.16 查询表达式7.16.1 查询表达式里的歧义7.16.2 查询表达式翻译7.16.3 查询表达式模式7.17 赋值操作符7.17.1 简单赋值7.17.2 组合赋值7.17.3 事件赋值7.18 表达式7.19 常量表达式7.20 布尔表达式第8章 语句8.1 终点和可及性8.2 块8.2.1 语句列表8.3 空语句8.4 标籤语句8.5 声明语句8.5.1 局部变数声明8.5.2 局部常量声明8.6 表达式语句8.7 选择语句8.7.1 if语句8.7.2 switch语句8.8 叠代语句8.8.1 while语句8.8.2 do语句8.8.3 for语句8.8.4 foreach语句8.9 跳转语句8.9.1 break语句8.9.2 continue语句8.9.3 goto语句8.9.4 return语句8.9.5 throw语句8.10 try语句8.11 checked和unchecked语句8.12 lock语句8.13 using语句8.14 yield语句第9章 命名空间9.1 编译单元9.2 命名空间声明9.3 extern别名9.4 using指令9.4.1 using别名指令9.4.2 using命名空间指令9.5 命名空间成员9.6 类型声明9.7 命名空间别名限定符9.7.1 别名的惟一性第10章 类10.1 类声明10.1.1 类修饰符 10.1.2 partial修饰符10.1.3 类型形参10.1.4 类基础规範10.1.5 类型形参限制10.1.6 类主体10.2 局部类型10.2.1 特性10.2.2 修饰符10.2.3 类型形参和限制10.2.4 基类10.2.5 基础接口10.2.6 成员10.2.7 局部方法10.2.8 名字绑定10.3 类成员10.3.1 实例类型10.3.2 构造类型的成员10.3.3 继承10.3.4 new修饰符10.3.5 访问修饰符10.3.6 组成类型10.3.7 静态成员和实例成员10.3.8 嵌套类型10.3.9 保留成员名10.4 常量10.5 栏位10.5.1 静态栏位和实例栏位10.5.2 唯读栏位10.5.3 易失栏位10.5.4 栏位初始化10.5.5 变数初始化语句10.6 方法10.6.1 方法形参10.6.2 静态方法和实例方法10.6.3 虚拟方法10.6.4 重写方法10.6.5 密封方法10.6.6 抽象方法10.6.7 外部方法10.6.8 局部方法10.6.9 扩展方法10.6.10 方法主体10.6.11 方法重载10.7 属性10.7.1 静态属性和实例属性10.7.2 访问器10.7.3 自动实现的属性10.7.4 可访问性10.7.5 虚拟、密封、重写和抽象访问器10.8 事件10.8.1 类似栏位的事件10.8.2 事件访问器10.8.3 静态事件和实例事件10.8.4 虚拟、密封、重写和抽象访问器10.9 索引10.9.1 索引重载10.10 操作符10.10.1 一元操作符10.10.2 二元操作符10.10.3 转换操作符10.11 实例构造函式10.11.1 构造函式初始化语句10.11.2 实例变数初始化语句10.11.3 构造函式的执行10.11.4 默认构造函式10.11.5 私有构造函式10.11.6 可选的实例构造函式参数10.12 静态构造函式10.13 析构函式10.14 叠代器10.14.1 枚举器接口10.14.2 可枚举接口10.14.3 yield类型10.14.4 计数对象10.14.5 枚举对象10.14.6 实现举例第11章 结构 11.1 结构声明11.1.1 结构修饰符11.1.2 partial修饰符11.1.3 结构接口11.1.4 结构主体11.2 结构成员11.3 类和结构的区别11.3.1 值语义11.3.2 继承11.3.3 赋值11.3.4 默认值11.3.5 装箱和拆箱11.3.6 this的含义11.3.7 栏位初始化语句11.3.8 构造函式11.3.9 析构函式11.3.10 静态构造函式11.4 结构举例11.4.1 资料库整数类型11.4.2 资料库布尔类型第12章 数组12.1 数组类型12.1.1 system.array类型12.1.2 数组和泛型ilist接口12.2 数组创建12.3 数组元素访问12.4 数组成员12.5 数组协变12.6 数组初始化语句第13章 接口13.1 接口声明13.1.1 接口修饰符13.1.2 partial修饰符13.1.3 可变类型形参列表13.1.4 基础接口13.1.5 接口主体13.2 接口成员13.2.1 接口方法13.2.2 接口属性13.2.3 接口事件13.2.4 接口索引13.2.5 接口成员访问13.3 完全限定接口成员名13.4 接口实现13.4.1 显式接口成员实现13.4.2 实现接口的惟一性13.4.3 泛型方法的实现13.4.4 接口映射13.4.5 接口实现继承13.4.6 重新实现接口13.4.7 抽象类和接口第14章 枚举14.1 枚举声明14.2 枚举修饰符14.3 枚举成员14.4 system.enum类型14.5 枚举值和操作第15章 委託15.1 委託声明15.2 委託兼容性15.3 委託实例化15.4 委託调用第16章 异常16.1 异常产生的原因16.2 system.exception类16.3 异常是如何处理的16.4 常见的异常类第17章 特性17.1 特性类17.1.1 特性的用法17.1.2 位置和命名参数17.1.3 特性参数类型17.2 特性规範17.3 特性实例17.3.1 特性的编译17.3.2 在运行时获取一个特性实例 17.4 保留特性17.4.1 attributeusage特性17.4.2 conditional特性17.4.3 obsolete特性17.5 用于互操作的特性17.5.1 与com以及win32组件互操作17.5.2 与其他.net语言互操作第18章 不安全的代码18.1 不安全的上下文18.2 指针类型18.3 固定变数和可移动变数18.4 指针转换18.4.1 指针数组18.5 表达式里的指针18.5.1 指针间接定址18.5.2 指针成员访问18.5.3 指针元素访问18.5.4 取地址操作符18.5.5 指针递增和递减18.5.6 指针算术18.5.7 指针比较18.5.8 sizeof操作符18.6 fixed语句18.7 定长缓冲区18.7.1 定长缓冲区声明18.7.2 表达式里的定长缓冲区18.7.3 明确赋值检查18.8 栈分配18.9 动态记忆体分配附录a 文档注释附录b 文法附录c 参考