C#高级编程(第9版)——C# 5.0 & .NET 4.5.1(.NET开发经典名著)
第Ⅰ部分C#语言
第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
查看完整
第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
查看完整
Christian Nagel是Microsoft RD、Microsoft MVP、thinktecture的合作伙伴、CN革新技术的奠基人,他还是一位软件架构师和开发人员,为开发Microsoft .NET解决方案提供培训和咨询服务。他具备超过25年的软件开发经验。Christian从PDP 11和VAX/VMS系统开始其计算机生涯,熟悉各种语言和平台。他具备Microsoft技术的深厚功底,编写了大量图书,并获得了Microsoft认证培训师和专业开发人员证书。 Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。 Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
本书由.NET专家的梦幻组合编写,包含开发人员使用C#所需的所有内容。C#是编写.NET应用程序的一种语言,本书适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。本书探讨了Visual Studio 2013和.NET Framework4.5.1、新的测试驱动开发和并发编程功能。所有示例的源代码都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows Store应用程序和ASP.NET Web应用程序。
第Ⅰ部分C#语言
第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
1.3.3强数据类型化
1.3.4通过异常处理错误
1.3.5特性的使用
1.4程序集
1.4.1私有程序集
1.4.2共享程序集
1.4.3反射
1.4.4并行编程
1.4.5异步编程
1.5.NETFramework类
1.6名称空间
1.7用C#创建.NET应用程序
1.7.1创建ASP.NET应用程序
1.7.2使用WPF
1.7.3WindowsStore应用程序
1.7.4Windows服务
1.7.5WCF
1.7.6WindowsWF
1.8C#在.NET企业体系结构中的作用
1.9小结
第2章核心C#
2.1C#基础
2.2个C#程序
2.2.1代码
2.2.2编译并运行程序
2.2.3详细介绍
2.3变量
2.3.1变量的初始化
2.3.2类型推断
2.3.3变量的作用域
2.3.4常量
2.4预定义数据类型
2.4.1值类型和引用类型
2.4.2CTS类型
2.4.3预定义的值类型
2.4.4预定义的引用类型
2.5流控制
2.5.1条件语句
2.5.2循环
2.5.3跳转语句
2.6枚举
2.7名称空间
2.7.1using语句
2.7.2名称空间的别名
2.8Main()方法
2.8.1多个Main()方法
2.8.2给Main()方法传递参数
2.9有关编译C#文件的更多内容
2.10控制台I/O
2.11使用注释
2.11.1源文件中的内部注释
2.11.2XML文档
2.12C#预处理器指令
2.12.1#define和#undef
2.12.2#if、#elif、#else和#endif
2.12.3#warning和#error
2.12.4#region和#endregion
2.12.5#line
2.12.6#pragma
2.13C#编程规则
2.13.1关于标识符的规则
2.13.2用法约定
2.14小结
第3章对象和类型
3.1创建及使用类
3.2类和结构
3.3类
3.3.1数据成员
3.3.2函数成员
3.3.3只读字段
3.4匿名类型
3.5结构
3.5.1结构是值类型
3.5.2结构和继承
3.5.3结构的构造函数
3.6弱引用
3.7部分类
3.8静态类
3.9Object类
3.9.1System.Object()方法
3.9.2ToString()方法
3.10扩展方法
3.11小结
第4章继承
4.1继承
4.2继承的类型
4.2.1实现继承和接口继承
4.2.2多重继承
4.2.3结构和类
4.3实现继承
4.3.1虚方法
4.3.2隐藏方法
4.3.3调用函数的基类版本
4.3.4抽象类和抽象函数
4.3.5密封类和密封方法
4.3.6派生类的构造函数
4.4修饰符
4.4.1可见性修饰符
4.4.2其他修饰符
4.5接口
4.5.1定义和实现接口
4.5.2派生的接口
4.6小结
第5章泛型
5.1泛型概述
5.1.1性能
5.1.2类型安全
5.1.3二进制代码的重用
5.1.4代码的扩展
5.1.5命名约定
5.2创建泛型类
5.3泛型类的功能
5.3.1默认值
5.3.2约束
5.3.3继承
5.3.4静态成员
5.4泛型接口
5.4.1协变和抗变
5.4.2泛型接口的协变
5.4.3泛型接口的抗变
5.5泛型结构
5.6泛型方法
5.6.1泛型方法示例
5.6.2带约束的泛型方法
5.6.3带委托的泛型方法
5.6.4泛型方法规范
5.7小结
第6章数组
6.1同一类型和不同类型的多个对象
6.2简单数组
6.2.1数组的声明
6.2.2数组的初始化
6.2.3访问数组元素
6.2.4使用引用类型
6.3多维数组
6.4锯齿数组
6.5Array类
6.5.1创建数组
6.5.2复制数组
6.5.3排序
6.6数组作为参数
6.6.1数组协变
6.6.2ArraySegment;
6.7枚举
6.7.1IEnumerator接口
6.7.2foreach语句
6.7.3yield语句
6.8元组
6.9结构比较
6.10小结
第7章运算符和类型强制转换
7.1运算符和类型转换
7.2运算符
7.2.1运算符的简化操作
7.2.2运算符的优先级
7.3类型的安全性
7.3.1类型转换
7.3.2装箱和拆箱
7.4比较对象的相等性
7.4.1比较引用类型的相等性
7.4.2比较值类型的相等性
7.5运算符重载
7.5.1运算符的工作方式
7.5.2运算符重载的示例:Vector结构
7.6用户定义的类型强制转换
7.6.1实现用户定义的类型强制转换
7.6.2多重类型强制转换
7.7小结
第8章委托、lambda表达式和事件
8.1引用方法
8.2委托
8.2.1声明委托
8.2.2使用委托
8.2.3简单的委托示例
8.2.4Action;和Func;委托
8.2.5BubbleSorter示例
8.2.6多播委托
8.2.7匿名方法
8.3lambda表达式
8.3.1参数
8.3.2多行代码
8.3.3闭包
8.3.4使用foreach语句的闭包
8.4事件
8.4.1事件发布程序
8.4.2事件侦听器
8.4.3弱事件
8.5小结
第9章字符串和正则表达式
9.1System.String类
9.1.1创建字符串
9.1.2StringBuilder成员
9.1.3格式字符串
9.2正则表达式
9.2.1正则表达式概述
9.2.2RegularExpressionsPlayaround示例
9.2.3显示结果
9.2.4匹配、组合和捕获
9.3小结
第10章集合
10.1概述
10.2集合接口和类型
10.3列表
10.3.1创建列表
10.3.2只读集合
10.4队列
10.5栈
10.6链表
10.7有序列表
10.8字典
10.8.1键的类型
10.8.2字典示例
10.8.3Lookup类
10.8.4有序字典
10.9集
10.10可观察的集合
10.11位数组
10.11.1BitArray类
10.11.2BitVector32结构
10.12不变的集合
10.13并发集合
10.13.1创建管道
10.13.2使用BlockingCollection
10.13.3使用ConcurrentDictionary
10.13.4完成管道
10.14性能
10.15小结
第11章LINQ
11.1LINQ概述
11.1.1列表和实体
11.1.2LINQ查询
11.1.3扩展方法
11.1.4推迟查询的执行
11.2标准的查询操作符
11.2.1筛选
11.2.2用索引筛选
11.2.3类型筛选
11.2.4复合的from子句
11.2.5排序
11.2.6分组
11.2.7对嵌套的对象分组
11.2.8内连接
11.2.9左外连接
11.2.10组连接
11.2.11集合操作
11.2.12合并
11.2.13分区
11.2.14聚合操作符
11.2.15转换操作符
11.2.16生成操作符
11.3并行LINQ
11.3.1并行查询
11.3.2分区器
11.3.3取消
11.4表达式树
11.5LINQ提供程序
11.6小结
第12章动态语言扩展
12.1DLR
12.2dynamic类型
12.3包含DLRScriptRuntime
12.4DynamicObject和ExpandoObject
12.4.1DynamicObject
12.4.2ExpandoObject
12.5小结
第13章异步编程
13.1异步编程的重要性
13.2异步模式
13.2.1同步调用
13.2.2异步模式
13.2.3基于事件的异步模式
13.2.4基于任务的异步模式
13.3异步编程的基础
13.3.1创建任务
13.3.2调用异步方法
13.3.3延续任务
13.3.4同步上下文
13.3.5使用多个异步方法
13.3.6转换异步模式
13.4错误处理
13.4.1异步方法的异常处理
13.4.2多个异步方法的异常处理
13.4.3使用AggregateException信息
13.5取消
13.5.1开始取消任务
13.5.2使用框架特性取消任务
13.5.3取消自定义任务
13.6小结
第14章内存管理和指针
14.1内存管理
14.2后台内存管理
14.2.1值数据类型
14.2.2引用数据类型
14.2.3垃圾回收
14.3释放非托管的资源
14.3.1析构函数
14.3.2IDisposable接口
14.3.3实现IDisposable接口和析构函数
14.4不安全的代码
14.4.1用指针直接访问内存
14.4.2指针示例:PointerPlayground
14.4.3使用指针优化性能
14.5小结
第15章反射
15.1在运行期间处理和检查代码
15.2自定义特性
15.2.1编写自定义特性
15.2.2自定义特性示例:WhatsNewAttributes
15.3反射
15.3.1System.Type类
15.3.2TypeView示例
15.3.3Assembly类
15.3.4完成WhatsNewAttributes示例
15.4小结
第16章错误和异常
16.1简介
16.2异常类
16.3捕获异常
16.3.1实现多个catch块
16.3.2在其他代码中捕获异常
16.3.3System.Exception属性
16.3.4没有处理异常时所发生的情况
16.3.5嵌套的try块
16.4用户定义的异常类
16.4.1捕获用户定义的异常
16.4.2抛出用户定义的异常
16.4.3定义用户定义的异常类
16.5调用者信息
16.6小结
第Ⅱ部分VisualStudio
第Ⅲ部分基础
第Ⅳ部分数据
^ 收 起
第1章.NET体系结构
1.1C#与.NET的关系
1.2公共语言运行库
1.2.1平台无关性
1.2.2提高性能
1.2.3语言的互操作性
1.3中间语言
1.3.1面向对象和接口的支持
1.3.2不同的值类型和引用类型
1.3.3强数据类型化
1.3.4通过异常处理错误
1.3.5特性的使用
1.4程序集
1.4.1私有程序集
1.4.2共享程序集
1.4.3反射
1.4.4并行编程
1.4.5异步编程
1.5.NETFramework类
1.6名称空间
1.7用C#创建.NET应用程序
1.7.1创建ASP.NET应用程序
1.7.2使用WPF
1.7.3WindowsStore应用程序
1.7.4Windows服务
1.7.5WCF
1.7.6WindowsWF
1.8C#在.NET企业体系结构中的作用
1.9小结
第2章核心C#
2.1C#基础
2.2个C#程序
2.2.1代码
2.2.2编译并运行程序
2.2.3详细介绍
2.3变量
2.3.1变量的初始化
2.3.2类型推断
2.3.3变量的作用域
2.3.4常量
2.4预定义数据类型
2.4.1值类型和引用类型
2.4.2CTS类型
2.4.3预定义的值类型
2.4.4预定义的引用类型
2.5流控制
2.5.1条件语句
2.5.2循环
2.5.3跳转语句
2.6枚举
2.7名称空间
2.7.1using语句
2.7.2名称空间的别名
2.8Main()方法
2.8.1多个Main()方法
2.8.2给Main()方法传递参数
2.9有关编译C#文件的更多内容
2.10控制台I/O
2.11使用注释
2.11.1源文件中的内部注释
2.11.2XML文档
2.12C#预处理器指令
2.12.1#define和#undef
2.12.2#if、#elif、#else和#endif
2.12.3#warning和#error
2.12.4#region和#endregion
2.12.5#line
2.12.6#pragma
2.13C#编程规则
2.13.1关于标识符的规则
2.13.2用法约定
2.14小结
第3章对象和类型
3.1创建及使用类
3.2类和结构
3.3类
3.3.1数据成员
3.3.2函数成员
3.3.3只读字段
3.4匿名类型
3.5结构
3.5.1结构是值类型
3.5.2结构和继承
3.5.3结构的构造函数
3.6弱引用
3.7部分类
3.8静态类
3.9Object类
3.9.1System.Object()方法
3.9.2ToString()方法
3.10扩展方法
3.11小结
第4章继承
4.1继承
4.2继承的类型
4.2.1实现继承和接口继承
4.2.2多重继承
4.2.3结构和类
4.3实现继承
4.3.1虚方法
4.3.2隐藏方法
4.3.3调用函数的基类版本
4.3.4抽象类和抽象函数
4.3.5密封类和密封方法
4.3.6派生类的构造函数
4.4修饰符
4.4.1可见性修饰符
4.4.2其他修饰符
4.5接口
4.5.1定义和实现接口
4.5.2派生的接口
4.6小结
第5章泛型
5.1泛型概述
5.1.1性能
5.1.2类型安全
5.1.3二进制代码的重用
5.1.4代码的扩展
5.1.5命名约定
5.2创建泛型类
5.3泛型类的功能
5.3.1默认值
5.3.2约束
5.3.3继承
5.3.4静态成员
5.4泛型接口
5.4.1协变和抗变
5.4.2泛型接口的协变
5.4.3泛型接口的抗变
5.5泛型结构
5.6泛型方法
5.6.1泛型方法示例
5.6.2带约束的泛型方法
5.6.3带委托的泛型方法
5.6.4泛型方法规范
5.7小结
第6章数组
6.1同一类型和不同类型的多个对象
6.2简单数组
6.2.1数组的声明
6.2.2数组的初始化
6.2.3访问数组元素
6.2.4使用引用类型
6.3多维数组
6.4锯齿数组
6.5Array类
6.5.1创建数组
6.5.2复制数组
6.5.3排序
6.6数组作为参数
6.6.1数组协变
6.6.2ArraySegment;
6.7枚举
6.7.1IEnumerator接口
6.7.2foreach语句
6.7.3yield语句
6.8元组
6.9结构比较
6.10小结
第7章运算符和类型强制转换
7.1运算符和类型转换
7.2运算符
7.2.1运算符的简化操作
7.2.2运算符的优先级
7.3类型的安全性
7.3.1类型转换
7.3.2装箱和拆箱
7.4比较对象的相等性
7.4.1比较引用类型的相等性
7.4.2比较值类型的相等性
7.5运算符重载
7.5.1运算符的工作方式
7.5.2运算符重载的示例:Vector结构
7.6用户定义的类型强制转换
7.6.1实现用户定义的类型强制转换
7.6.2多重类型强制转换
7.7小结
第8章委托、lambda表达式和事件
8.1引用方法
8.2委托
8.2.1声明委托
8.2.2使用委托
8.2.3简单的委托示例
8.2.4Action;和Func;委托
8.2.5BubbleSorter示例
8.2.6多播委托
8.2.7匿名方法
8.3lambda表达式
8.3.1参数
8.3.2多行代码
8.3.3闭包
8.3.4使用foreach语句的闭包
8.4事件
8.4.1事件发布程序
8.4.2事件侦听器
8.4.3弱事件
8.5小结
第9章字符串和正则表达式
9.1System.String类
9.1.1创建字符串
9.1.2StringBuilder成员
9.1.3格式字符串
9.2正则表达式
9.2.1正则表达式概述
9.2.2RegularExpressionsPlayaround示例
9.2.3显示结果
9.2.4匹配、组合和捕获
9.3小结
第10章集合
10.1概述
10.2集合接口和类型
10.3列表
10.3.1创建列表
10.3.2只读集合
10.4队列
10.5栈
10.6链表
10.7有序列表
10.8字典
10.8.1键的类型
10.8.2字典示例
10.8.3Lookup类
10.8.4有序字典
10.9集
10.10可观察的集合
10.11位数组
10.11.1BitArray类
10.11.2BitVector32结构
10.12不变的集合
10.13并发集合
10.13.1创建管道
10.13.2使用BlockingCollection
10.13.3使用ConcurrentDictionary
10.13.4完成管道
10.14性能
10.15小结
第11章LINQ
11.1LINQ概述
11.1.1列表和实体
11.1.2LINQ查询
11.1.3扩展方法
11.1.4推迟查询的执行
11.2标准的查询操作符
11.2.1筛选
11.2.2用索引筛选
11.2.3类型筛选
11.2.4复合的from子句
11.2.5排序
11.2.6分组
11.2.7对嵌套的对象分组
11.2.8内连接
11.2.9左外连接
11.2.10组连接
11.2.11集合操作
11.2.12合并
11.2.13分区
11.2.14聚合操作符
11.2.15转换操作符
11.2.16生成操作符
11.3并行LINQ
11.3.1并行查询
11.3.2分区器
11.3.3取消
11.4表达式树
11.5LINQ提供程序
11.6小结
第12章动态语言扩展
12.1DLR
12.2dynamic类型
12.3包含DLRScriptRuntime
12.4DynamicObject和ExpandoObject
12.4.1DynamicObject
12.4.2ExpandoObject
12.5小结
第13章异步编程
13.1异步编程的重要性
13.2异步模式
13.2.1同步调用
13.2.2异步模式
13.2.3基于事件的异步模式
13.2.4基于任务的异步模式
13.3异步编程的基础
13.3.1创建任务
13.3.2调用异步方法
13.3.3延续任务
13.3.4同步上下文
13.3.5使用多个异步方法
13.3.6转换异步模式
13.4错误处理
13.4.1异步方法的异常处理
13.4.2多个异步方法的异常处理
13.4.3使用AggregateException信息
13.5取消
13.5.1开始取消任务
13.5.2使用框架特性取消任务
13.5.3取消自定义任务
13.6小结
第14章内存管理和指针
14.1内存管理
14.2后台内存管理
14.2.1值数据类型
14.2.2引用数据类型
14.2.3垃圾回收
14.3释放非托管的资源
14.3.1析构函数
14.3.2IDisposable接口
14.3.3实现IDisposable接口和析构函数
14.4不安全的代码
14.4.1用指针直接访问内存
14.4.2指针示例:PointerPlayground
14.4.3使用指针优化性能
14.5小结
第15章反射
15.1在运行期间处理和检查代码
15.2自定义特性
15.2.1编写自定义特性
15.2.2自定义特性示例:WhatsNewAttributes
15.3反射
15.3.1System.Type类
15.3.2TypeView示例
15.3.3Assembly类
15.3.4完成WhatsNewAttributes示例
15.4小结
第16章错误和异常
16.1简介
16.2异常类
16.3捕获异常
16.3.1实现多个catch块
16.3.2在其他代码中捕获异常
16.3.3System.Exception属性
16.3.4没有处理异常时所发生的情况
16.3.5嵌套的try块
16.4用户定义的异常类
16.4.1捕获用户定义的异常
16.4.2抛出用户定义的异常
16.4.3定义用户定义的异常类
16.5调用者信息
16.6小结
第Ⅱ部分VisualStudio
第Ⅲ部分基础
第Ⅳ部分数据
^ 收 起
Christian Nagel是Microsoft RD、Microsoft MVP、thinktecture的合作伙伴、CN革新技术的奠基人,他还是一位软件架构师和开发人员,为开发Microsoft .NET解决方案提供培训和咨询服务。他具备超过25年的软件开发经验。Christian从PDP 11和VAX/VMS系统开始其计算机生涯,熟悉各种语言和平台。他具备Microsoft技术的深厚功底,编写了大量图书,并获得了Microsoft认证培训师和专业开发人员证书。 Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。 Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
本书由.NET专家的梦幻组合编写,包含开发人员使用C#所需的所有内容。C#是编写.NET应用程序的一种语言,本书适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。本书探讨了Visual Studio 2013和.NET Framework4.5.1、新的测试驱动开发和并发编程功能。所有示例的源代码都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows Store应用程序和ASP.NET Web应用程序。
比价列表
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠