在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
第3版译者序第2版译者序1 C 和.NET框架1.1 在.NET之前1.1.1 20世纪90年代末的Windows编程1.1.2 下一代平台服务的目标1.2 .NET时代1.2.1 .NET框架的组成1.2.2 大大改进的编程环境1.3 编译成CIL1.4 编译成本机代码并执行编译和执行1.5 CLR1.6 CLICLI的重要组成部分1.7 各种缩写1.8 C 的演化2 C 编程概述2.1 一个简单的C 程序SimpleProgram的补充说明2.2 标识符2.3 关键字2.4 Main:程序的起始点2.5 空白2.6 语句块2.7 从程序中输出文本2.7.1 Write2.7.2 WriteLine2.7.3 格式字符串2.7.4 多重标记和值2.7.5 格式化数字字符串2.8 注释:为代码添加注解2.8.1 关于注释的补充2.8.2 文档注释2.8.3 注释类型总结3 类型、存储和变量3.1 C 程序是一组类型声明3.2 类型是一种模板3.3 实例化类型3.4 数据成员和函数成员成员的类别3.5 预定义类型预定义类型的补充3.6 用户定义类型3.7 栈和堆3.7.1 栈3.7.2 堆3.8 值类型和引用类型3.8.1 存储引用类型对象的成员3.8.2 C 类型的分类3.9 变量3.9.1 变量声明3.9.2 多变量声明3.9.3 使用变量的值3.10 静态类型和dynamic关键字3.11 可空类型4 类的基本概念4.1 类的概述类是一种活动的数据结构4.2 程序和类:一个快速示例4.3 声明类4.4 类成员4.4.1 字段4.4.2 方法4.5 创建变量和类的实例4.6 为数据分配内存合并这两个步骤4.7 实例成员4.8 访问修饰符私有访问和公有访问4.9 从类的内部访问成员4.10 从类的外部访问成员4.11 综合应用5 方法5.1 方法的结构5.2 方法体内部的代码执行5.3 本地变量5.3.1 类型推断和var关键字5.3.2 嵌套块中的本地变量5.4 本地常量5.5 控制流5.6 方法调用5.7 返回值5.8 返回语句和void方法5.9 参数5.9.1 形参5.9.2 实参5.10 值参数5.11 引用参数5.12 引用类型作为值参数和引用参数5.13 输出参数5.14 参数数组5.14.1 方法调用5.14.2 用数组作为实参5.15 参数类型总结5.16 方法重载5.17 命名参数5.18 可选参数5.19 栈帧5.20 递归6 深入理解类6.1 类成员6.2 成员修饰符的顺序6.3 实例类成员6.4 静态字段6.5 从类的外部访问静态成员6.5.1 静态字段示例6.5.2 静态成员的生存期6.6 静态函数成员6.7 其他静态类成员类型6.8 成员常量6.9 常量与静态量6.10 属性6.10.1 属性声明和访问器6.10.2 属性示例6.10.3 使用属性6.10.4 属性和关联字段6.10.5 执行其他计算6.10.6 只读和只写属性6.10.7 属性与公共字段6.10.8 计算只读属性示例6.10.9 自动实现属性6.10.10 静态属性6.11 实例构造函数6.11.1 带参数的构造函数6.11.2 默认构造函数6.12 静态构造函数静态构造函数示例6.13 对象初始化语句6.14 析构函数6.15 readonly修饰符6.16 this关键字6.17 索引器6.17.1 什么是索引器6.17.2 索引器和属性6.17.3 声明索引器6.17.4 索引器的set访问器6.17.5 索引器的get访问器6.17.6 关于索引器的补充6.17.7 为Employee示例声明索引器6.17.8 另一个索引器的示例6.17.9 索引器重载6.18 访问器的访问修饰符6.19 分部类和分部类型6.20 分部方法7 类和继承7.1 类继承7.2 访问继承的成员7.3 所有类都派生自object类7.4 屏蔽基类的成员7.5 基类访问7.6 使用基类的引用7.6.1 虚方法和覆写方法7.6.2 覆写标记为override的方法7.6.3 覆盖其他成员类型7.7 构造函数的执行7.7.1 构造函数初始化语句7.7.2 类访问修饰符7.8 程序集间的继承7.9 成员访问修饰符7.9.1 访问成员的区域7.9.2 公有成员的可访问性7.9.3 私有成员的可访问性7.9.4 受保护成员的可访问性7.9.5 内部成员的可访问性7.9.6 受保护内部成员的可访问性7.9.7 成员访问修饰符小结7.10 抽象成员7.11 抽象类7.11.1 抽象类和抽象方法的示例7.11.2 抽象类的另一个例子7.12 密封类7.13 静态类7.14 扩展方法7.15 命名约定8 表达式和运算符8.1 表达式8.2 字面量8.2.1 整数字面量8.2.2 实数字面量8.2.3 字符字面量8.2.4 字符串字面量8.3 求值顺序8.3.1 优先级8.3.2 结合性8.4 简单算术运算符8.5 求余运算符8.6 关系比较运算符和相等比较运算符比较操作和相等性操作8.7 递增运算符和递减运算符8.8 条件逻辑运算符8.9 逻辑运算符8.10 移位运算符8.11 赋值运算符复合赋值8.12 条件运算符8.13 一元算术运算符8.14 用户定义的类型转换显式转换和强制转换运算符8.15 运算符重载8.15.1 运算符重载的限制8.15.2 运算符重载的示例8.16 typeof运算符8.17 其他运算符9 语句9.1 什么是语句9.2 表达式语句9.3 控制流语句9.4 if语句9.5 if...else语句9.6 while循环9.7 do循环9.8 for循环9.8.1 for语句中变量的作用域9.8.2 初始化和迭代表达式中的多表达式9.9 switch语句9.9.1 分支示例9.9.2 switch语句的补充9.9.3 分支标签9.10 跳转语句9.11 break语句9.12 continue语句9.13 标签语句9.13.1 标签9.13.2 标签语句的作用域9.14 goto语句goto语句在switch语句内部9.15 using语句9.15.1 资源的包装使用9.15.2 using语句的示例9.15.3 多个资源和嵌套9.15.4 using语句的另一种形式9.16 其他语句10 结构10.1 什么是结构10.2 结构是值类型10.3 对结构赋值10.4 构造函数和析构函数10.4.1 实例构造函数10.4.2 静态构造函数10.4.3 构造函数和析构函数小结10.5 字段初始化语句是不允许的10.6 结构是密封的10.7 装箱和拆箱10.8 结构作为返回值和参数10.9 关于结构的其他信息11 枚举11.1 枚举11.1.1 设置底层类型和显式值11.1.2 隐式成员编号11.2 位标志11.2.1 Flags特性11.2.2 使用位标志的示例11.3 关于枚举的补充12 数组12.1 数组12.1.1 定义12.1.2 重要细节12.2 数组的类型12.3 数组是对象12.4 一维数组和矩形数组声明一维数组或矩形数组12.5 实例化一维数组或矩形数组12.6 访问数组元素12.7 初始化数组12.7.1 显式初始化一维数组12.7.2 显式初始化矩形数组12.7.3 初始化矩形数组的语法点12.7.4 快捷语法12.7.5 隐式类型数组12.7.6 综合内容12.8 交错数组12.8.1 声明交错数组12.8.2 快捷实例化12.8.3 实例化交错数组12.8.4 交错数组中的子数组12.9 比较矩形数组和交错数组12.10 foreach语句12.10.1 迭代变量是只读的12.10.2 foreach语句和多维数组12.11 数组协变12.12 数组继承的有用成员Clone方法12.13 比较数组类型13 委托13.1 什么是委托13.2 委托概述13.3 声明委托类型13.4 创建委托对象13.5 给委托赋值13.6 组合委托13.7 为委托添加方法13.8 从委托移除方法13.9 调用委托13.10 委托的示例13.11 调用带返回值的委托13.12 调用带引用参数的委托13.13 匿名方法13.13.1 使用匿名方法13.13.2 匿名方法的语法13.13.3 变量和参数的作用域13.14 Lambda表达式14 事件14.1 发布者和订阅者14.2 源代码组件概览14.3 声明事件事件是成员14.4 订阅事件14.5 触发事件14.6 标准事件的用法14.6.1 通过扩展EventArgs来传递数据14.6.2 移除事件处理程序14.7 事件访问器15 接口15.1 什么是接口使用IComparable接口的示例15.2 声明接口15.3 实现接口简单接口的示例15.4 接口是引用类型15.5 接口和as运算符15.6 实现多个接口15.7 实现具有重复成员的接口15.8 多个接口的引用15.9 派生成员作为实现15.10 显式接口成员实现访问显式接口成员实现15.11 接口可以继承接口15.12 不同类实现一个接口的示例16 转换16.1 什么是转换16.2 隐式转换16.3 显式转换和强制转换强制转换16.4 转换的类型16.5 数字的转换16.5.1 隐式数字转换16.5.2 溢出检测上下文16.5.3 显式数字转换16.6 引用转换16.6.1 隐式引用转换16.6.2 显式引用转换16.6.3 有效显式引用转换16.7 装箱转换16.7.1 装箱是创建副本16.7.2 装箱转换16.8 拆箱转换拆箱转换16.9 用户自定义转换16.9.1 用户自定义转换的约束16.9.2 用户自定义转换的示例16.9.3 评估用户自定义转换16.9.4 多步用户自定义转换的示例16.10 is运算符16.11 as运算符17 泛型17.1 什么是泛型一个栈的示例17.2 C 中的泛型继续栈的示例17.3 泛型类17.4 声明泛型类17.5 创建构造类型17.6 创建变量和实例17.6.1 使用泛型的栈的示例17.6.2 比较泛型和非泛型栈17.7 类型参数的约束17.7.1 Where子句17.7.2 约束类型和次序17.8 泛型方法17.8.1 声明泛型方法17.8.2 调用泛型方法17.8.3 泛型方法的示例17.9 扩展方法和泛型类17.10 泛型结构17.11 泛型委托另一个 泛型委托的示例17.12 泛型接口17.12.1 使用泛型接口的示例17.12.2 泛型接口的实现必须唯一17.13 协变17.14 逆变17.14.1 接口的协变和逆变17.14.2 有关可变性的更多内容18 枚举器和迭代器18.1 枚举器和可枚举类型使用foreach语句18.2 IEnumerator接口使用IEnumerable和IEnumerator的示例18.3 泛型枚举接口18.4 迭代器18.4.1 迭代器块18.4.2 使用迭代器来创建枚举器18.4.3 使用迭代器来创建可枚举类型18.5 常见迭代器模式18.6 产生多个可枚举类型18.7 将迭代器作为属性18.8 迭代器实质19 LINQ19.1 什么是LINQ19.2 LINQ提供程序匿名类型19.3 方法语法和查询语法19.4 查询变量19.5 查询表达式的结构19.5.1 from子句19.5.2 join子句19.5.3 什么是联结19.5.4 查询主体中的from...let...where片段19.5.5 orderby子句19.5.6 select...group子句19.5.7 查询中的匿名类型19.5.8 group子句19.5.9 查询延续:into子句19.6 标准查询运算符19.6.1 标准查询运算符的签名19.6.2 查询表达式和标准查询运算符19.6.3 将委托作为参数19.6.4 LINQ预定义的委托类型19.6.5 使用委托参数的示例19.6.6 使用Lambda表达式参数的示例19.7 LINQ to XML19.7.1 标记语言19.7.2 XML基础19.7.3 XML类19.7.4 使用XML特性19.7.5 节点的其他类型19.7.6 使用LINQ to XML的LINQ查询20 异步编程20.1 什么是异步示例20.2 async/await特性的结构20.3 什么是异步方法20.3.1 异步方法的控制流20.3.2 await表达式20.3.3 取消一个异步操作20.3.4 异常处理和await表达式20.3.5 在调用方法中同步地等待任务20.3.6 在异步方法中异步地等待任务20.3.7 Task.Delay方法20.4 在GUI程序中执行异步操作Task.Yield20.5 使用异步Lambda表达式20.6 完整的GUI程序20.7 BackgroundWorker类在WPF程序中使用BackgroundWorker类的示例代码20.8 并行循环20.9 其他异步编程模式20.10 BeginInvoke和EndInvoke20.10.1 等待—直到结束模式20.10.2 AsyncResult类20.10.3 轮询模式20.10.4 回调模式20.11 计时器21 命名空间和程序集21.1 引用其他程序集mscorlib库21.2 命名空间21.2.1 命名空间名称21.2.2 命名空间的补充21.2.3 命名空间跨文件伸展21.2.4 嵌套命名空间21.3 using指令21.3.1 using命名空间指令21.3.2 using别名指令21.4 程序集的结构21.5 程序集标识符21.6 强命名程序集创建强命名程序集21.7 程序集的私有方式部署21.8 共享程序集和GAC21.8.1 把程序集安装到GAC21.8.2 GAC内的并肩执行21.9 配置文件21.10 延迟签名22 异常22.1 什么是异常22.2 try语句处理异常22.3 异常类22.4 catch子句22.5 使用特定catch子句的示例22.6 catch子句段22.7 finally块22.8 为异常寻找处理程序22.9 更进一步搜索22.9.1 一般法则22.9.2 搜索调用栈的示例22.10 抛出异常22.11 不带异常对象的抛出23 预处理指令23.1 什么是预处理指令23.2 基本规则23.3 define和 undef指令23.4 条件编译23.5 条件编译结构23.6 诊断指令23.7 行号指令23.8 区域指令23.9 pragma warning指令24 反射和特性24.1 元数据和反射24.2 Type类24.3 获取Type对象24.4 什么是特性24.5 应用特性24.6 预定义的保留的特性24.6.1 Obsolete特性24.6.2 Conditional特性24.6.3 调用者信息特性24.6.4 DebuggerStepThrough特性24.6.5 其他预定义特性24.7 有关应用特性的更多内容24.7.1 多个特性24.7.2 其他类型的目标24.7.3 全局特性24.8 自定义特性24.8.1 声明自定义特性24.8.2 使用特性的构造函数24.8.3 指定构造函数24.8.4 使用构造函数24.8.5 构造函数中的位置参数和命名参数24.8.6 限制特性的使用24.8.7 自定义特性的最佳实践24.9 访问特性24.9.1 使用IsDefined方法24.9.2 使用GetCustomAttributes方法25 其他主题25.1 概述25.2 字符串25.3 使用StringBuilder类25.4 把字符串解析为数据值25.5 关于可空类型的更多内容25.5.1 为可空类型赋值25.5.2 使用空接合运算符25.5.3 使用可空用户自定义类型25.6 Main方法Main的可访问性25.7 文档注释25.7.1 插入文档注释25.7.2 使用其他XML标签25.8 嵌套类型25.8.1 嵌套类的示例25.8.2 可见性和嵌套类型25.9 析构函数和dispose模式25.9.1 标准dispose模式25.9.2 比较构造函数和析构函数25.10 和COM的互操作思维导图防止博客图床图片失效,防止图片源站外链: http://www.processon.com/chart_image/5e5aa354e4b03627650ad96b.png) 思维导图在线编辑链接: https://www.processon.com/view/5e5aa354e4b03627650ad968 |
请发表评论