互联网
类型
9.1
豆瓣评分
可以朗读
语音朗读
357千字
字数
2018-06-01
发行日期
展开全部
主编推荐语
一部C#语言的入门宝典!
内容简介
延续该系列上几本的风格,本书采用数据、短而集中的代码样本,以及简洁、清晰的说明对c# 5.0进行了透彻的讲解。介绍了c# 5.0这种语言的细节,在.NET最新版本下的新功能,以及c#与其他编程语言的异同点。
目录
- 版权信息
- 内容提要
- 第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 编译成CIL
- 1.4 编译成本机代码并执行
- 编译和执行
- 1.5 CLR
- 1.6 CLI
- CLI的重要组成部分
- 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 Write
- 2.7.2 WriteLine
- 2.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章 LINQ
- 19.1 什么是LINQ
- 19.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 XML
- 19.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.Yield
- 20.5 使用异步Lambda表达式
- 20.6 完整的GUI程序
- 20.7 BackgroundWorker类
- 在WPF程序中使用BackgroundWorker类的示例代码
- 20.8 并行循环
- 20.9 其他异步编程模式
- 20.10 BeginInvoke和EndInvoke
- 20.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 共享程序集和GAC
- 21.8.1 把程序集安装到GAC
- 21.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的互操作
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。