• C#高级编程
21年品牌 40万+商家 超1.5亿件商品

C#高级编程

28.96 1.7折 168 九五品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者[美] Christian Nagel 著 李铭 译

出版社清华大学出版社

ISBN9787302461968

出版时间2017-04

版次1

装帧平装

开本16开

纸张胶版纸

页数1442页

定价168元

上书时间2024-12-13

纵列風

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
商品描述
基本信息
书名:C#高级编程
定价:168元
作者:[美] Christian Nagel 著 李铭 译
出版社:清华大学出版社
出版日期:2017-04-01
ISBN:9787302461968
字数:
页码:1442
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐

内容提要

目录
第Ⅰ部分 C# 语 言章 .NET应用程序体系结构 21.1 选择技术 21.2 回顾.NET历史 31.2.1C# 1.0 ——一种新语言 31.2.2带有泛型的C# 2和.NET 2 51.2.3.NET 3.0—— Windows Presentation Foundation 51.2.4C# 3和.NET 3.5—— LINQ 51.2.5C# 4和.NET 4.0—— dynamic 和TPL 61.2.6C# 5和异步编程 61.2.7C# 6和.NET Core 71.2.8选择技术,继续前进 81.3.NET 2015 81.3.1.NET Framework 4.6 91.3.2.NET Core 1.0 101.3.3程序集 111.3.4NuGet 包 121.3.5公共语言运行库 131.3.6.NET Native 141.3.7Windows 运行库 141.4Hello, World 151.5 用.NET 4.6编译 161.6 用.NET CoreCLI编译 171.6.1设置环境 181.6.2构建应用程序 181.6.3打包和发布应用程序 211.7 应用程序类型和技术 221.7.1数据访问 221.7.2Windows桌面应用程序 231.7.3UWP 241.7.4SOAP服务和WCF 241.7.5Web服务和ASP.NET Web API 241.7.6WebHooks和SignalR 251.7.7Windows服务 251.7.8Web应用程序 251.7.9Microsoft Azure 261.8 开发工具 271.8.1Visual Studio Community 271.8.2Visual Studio Professional withMSDN 271.8.3Visual Studio Enterprise withMSDN 271.8.4Visual Studio Code 281.9 小结 28第2章 核心C# 292.1C#基础 302.2 用VisualStudio创建Hello, World! 302.2.1创建解决方案 302.2.2创建新项目 312.2.3编译和运行程序 332.2.4代码的详细介绍 352.3 变量 362.3.1初始化变量 372.3.2类型推断 382.3.3变量的作用域 392.3.4常量 412.4 预定义数据类型 412.4.1值类型和引用类型 422.4.2.NET类型 432.4.3预定义的值类型 432.4.4预定义的引用类型 462.5 程序流控制 482.5.1条件语句 482.5.2循环 512.5.3跳转语句 552.6 枚举 552.7 名称空间 572.7.1using语句 582.7.2名称空间的别名 592.8Main方法 602.9 使用注释 612.9.1源文件中的内部注释 612.9.2XML文档 622.10C#预处理器指令 632.10.1#define和#undef 632.10.2#if、#elif、#else和#endif 642.10.3#warning和 # error 652.10.4#region和#endregion 652.10.5#line 652.10.6#pragma 652.11C#编程准则 662.11.1关于标识符的规则 662.11.2用法约定 672.12小结 70第3章 对象和类型 713.1 创建及使用类 723.2 类和结构 723.3 类 733.3.1字段 733.3.2属性 743.3.3方法 763.3.4构造函数 813.3.5只读成员 853.3.6只读字段 853.4 匿名类型 883.5 结构 893.5.1结构是值类型 903.5.2结构和继承 913.5.3结构的构造函数 913.6 按值和按引用传递参数 913.6.1ref参数 923.6.2out参数 933.7 可空类型 943.8 枚举 953.9 部分类 973.10扩展方法 993.11Object类 1003.12小结 101第4章 继承 1024.1 继承 1024.2 继承的类型 1024.2.1多重继承 1034.2.2结构和类 1034.3 实现继承 1034.3.1虚方法 1044.3.2多态性 1064.3.3隐藏方法 1074.3.4调用方法的基类版本 1084.3.5抽象类和抽象方法 1094.3.6密封类和密封方法 1104.3.7派生类的构造函数 1104.4 修饰符 1124.4.1访问修饰符 1134.4.2其他修饰符 1134.5 接口 1144.5.1定义和实现接口 1154.5.2派生的接口 1184.6is和as运算符 1204.7 小结 121第5章 托管和非托管的资源 1225.1 资源 1225.2 后台内存管理 1235.2.1值数据类型 1235.2.2引用数据类型 1255.2.3垃圾回收 1275.3 强引用和弱引用 1295.4 处理非托管的资源 1305.4.1析构函数或终结器 1305.4.2IDisposable接口 1315.4.3using语句 1325.4.4实现IDisposable接口和析构函数 1335.4.5IDisposable和终结器的规则 1345.5 不安全的代码 1355.5.1用指针直接访问内存 1355.5.2指针示例:PointerPlayground 1435.5.3使用指针优化性能 1475.6 平台调用 1505.7 小结 154第6章 泛型 1556.1 泛型概述 1556.1.1性能 1566.1.2类型安全 1576.1.3二进制代码的重用 1576.1.4代码的扩展 1586.1.5命名约定 1586.2 创建泛型类 1586.3 泛型类的功能 1626.3.1默认值 1636.3.2约束 1636.3.3继承 1666.3.4静态成员 1676.4 泛型接口 1676.4.1协变和抗变 1686.4.2泛型接口的协变 1696.4.3泛型接口的抗变 1706.5 泛型结构 1716.6 泛型方法 1736.6.1泛型方法示例 1746.6.2带约束的泛型方法 1756.6.3带委托的泛型方法 1766.6.4泛型方法规范 1766.7 小结 178第7章 数组和元组 1797.1 同一类型和不同类型的多个对象 1797.2 简单数组 1807.2.1数组的声明 1807.2.2数组的初始化 1807.2.3访问数组元素 1817.2.4使用引用类型 1827.3 多维数组 1837.4 锯齿数组 1847.5Array类 1857.5.1创建数组 1857.5.2复制数组 1867.5.3排序 1877.6 数组作为参数 1907.6.1数组协变 1907.6.2ArraySegment 1917.7 枚举 1917.7.1IEnumerator接口 1927.7.2foreach语句 1927.7.3yield语句 1937.8 元组 1977.9 结构比较 1987.10小结 201第8章 运算符和类型强制转换2028.1 运算符和类型转换 2028.2 运算符 2038.2.1运算符的简化操作 2048.2.2运算符的优先级和关联性 2128.3 类型的安全性 2138.3.1类型转换 2138.3.2装箱和拆箱 2178.4 比较对象的相等性 2188.4.1比较引用类型的相等性 2188.4.2比较值类型的相等性 2198.5 运算符重载 2198.5.1运算符的工作方式 2208.5.2运算符重载的示例:Vector结构 2218.5.3比较运算符的重载 2258.5.4可以重载的运算符 2278.6 实现自定义的索引运算符2288.7 实现用户定义的类型强制转换 2308.7.1实现用户定义的类型强制转换 2318.7.2多重类型强制转换 2378.8 小结 240第9章 委托、lambda表达式和事件 2419.1 引用方法 2419.2 委托 2429.2.1声明委托 2429.2.2使用委托 2439.2.3简单的委托示例 2469.2.4Action和Func委托 2489.2.5BubbleSorter示例 2489.2.6多播委托 2519.2.7匿名方法 2549.3lambda表达式 2559.3.1参数 2569.3.2多行代码 2569.3.3闭包 2579.4 事件 2589.4.1事件发布程序 2589.4.2事件侦听器 2609.4.3弱事件 2619.5 小结 2630章 字符串和正则表达式 26410.1System.String类 26510.1.1构建字符串 26610.1.2StringBuilder成员 26910.2字符串格式 27010.2.1字符串插值 27010.2.2日期时间和数字的格式 27210.2.3自定义字符串格式 27410.3正则表达式 27510.3.1正则表达式概述 27510.3.2RegularExpressionsPlayaround示例 27610.3.3显示结果 27910.3.4匹配、组和捕获 28010.4小结 2831章 集合 28411.1概述 28411.2集合接口和类型 28511.3列表 28511.3.1创建列表 28711.3.2只读集合 29411.4队列 29411.5栈 29811.6链表 30011.7有序列表 30511.8字典 30611.8.1字典初始化器 30711.8.2键的类型 30711.8.3字典示例 30811.8.4Lookup类 31211.8.5有序字典 31311.9集 31311.10性能 31511.11小结 3162章 特殊的集合 31712.1概述 31712.2处理位 31712.2.1BitArray类 31812.2.2BitVector32结构 32012.3可观察的集合 32312.4不变的集合 32412.4.1使用构建器和不变的集合 32712.4.2不变集合类型和接口 32712.4.3使用LINQ和不变的数组 32812.5并发集合 32812.5.1创建管道 32912.5.2使用BlockingCollection 33212.5.3使用Concurrent-Dictionary 33312.5.4完成管道 33412.6小结 3353章 LINQ 33713.1LINQ概述 33713.1.1列表和实体 33813.1.2LINQ查询 34113.1.3扩展方法 34213.1.4推迟查询的执行 34313.2标准的查询操作符 34513.2.1筛选 34713.2.2用索引筛选 34713.2.3类型筛选 34813.2.4复合的from子句 34813.2.5排序 34913.2.6分组 35013.2.7LINQ 查询中的变量 35113.2.8对嵌套的对象分组 35213.2.9内连接 35313.2.10左外连接 35513.2.11组连接 35513.2.12集合操作 35813.2.13合并 36013.2.14分区 36013.2.15聚合操作符 36213.2.16转换操作符 36313.2.17生成操作符 36513.3并行LINQ 36513.3.1并行查询 36513.3.2分区器 36613.3.3取消 36713.4表达式树 36713.5LINQ提供程序 37013.6小结 3714章 错误和异常 37214.1简介 37214.2异常类 37314.3捕获异常 37414.3.1实现多个catch块 37714.3.2在其他代码中捕获异常 38014.3.3System.Exception属性 38014.3.4异常过滤器 38114.3.5重新抛出异常 38214.3.6没有处理异常时发生的情况 38614.4用户定义的异常类 38614.4.1捕获用户定义的异常 38714.4.2抛出用户定义的异常 38914.4.3定义用户定义的异常类 39214.5调用者信息 39414.6小结 3965章 异步编程 39715.1异步编程的重要性 39715.2异步模式 39815.2.1同步调用 40515.2.2异步模式 40615.2.3基于事件的异步模式 40715.2.4基于任务的异步模式 40815.3异步编程的基础 41015.3.1创建任务 41015.3.2调用异步方法 41115.3.3延续任务 41115.3.4同步上下文 41215.3.5使用多个异步方法 41215.3.6转换异步模式 41315.4错误处理 41415.4.1异步方法的异常处理 41515.4.2多个异步方法的异常处理 41515.4.3使用AggregateException信息 41615.5取消 41715.5.1开始取消任务 41715.5.2使用框架特性取消任务 41715.5.3取消自定义任务 41815.6小结 4196章 反射、元数据和动态编程42016.1在运行期间检查代码和动态编程 42016.2自定义特性 42116.2.1编写自定义特性 42216.2.2自定义特性示例:WhatsNewAttributes 42516.3反射 42816.3.1System.Type类 42816.3.2TypeView示例 43016.3.3Assembly类 43316.3.4完成WhatsNewAttributes示例 43416.4为反射使用动态语言扩展 43816.4.1创建Calculator库 43816.4.2动态实例化类型 44016.4.3用反射API调用成员 44216.4.4使用动态类型调用成员 44216.5dynamic类型 44316.6DLR 44816.7包含DLR ScriptRuntime 44916.8DynamicObject和ExpandoObject 45116.8.1DynamicObject 45116.8.2ExpandoObject 45316.9小结 455第Ⅱ部分 .NET Core与Windows Runtime7章 Visual Studio 2015 45817.1使用Visual Studio 2015 45817.1.1Visual Studio的版本 46117.1.2Visual Studio设置 46117.2创建项目 46217.2.1面向多个版本的.NET Framework 46317.2.2选择项目类型 46417.3浏览并编写项目 46917.3.1构建环境:CLI和MSBuild 46917.3.2Solution Explorer 47017.3.3使用代码编辑器 47717.3.4学习和理解其他窗口 48117.3.5排列窗口 48517.4构建项目 48517.4.1构建、编译和生成代码 48617.4.2调试版本和发布版本 48617.4.3选择配置 48817.4.4编辑配置 48817.5调试代码 49017.5.1设置断点 49017.5.2使用数据提示和调试器可视化工具 49117.5.3Live Visual Tree 49217.5.4监视和修改变量 49317.5.5异常 49417.5.6多线程 49517.6重构工具 49517.7体系结构工具 49717.7.1代码地图 49817.7.2层关系图 49917.8分析应用程序 50017.8.1诊断工具 50017.8.2Concurrency Visualizer 50417.8.3代码分析器 50517.8.4Code Metrics 50617.9小结 5068章 .NET编译器平台 50718.1简介 50718.2编译器管道 50918.3语法分析 50918.3.1使用查询节点 51518.3.2遍历节点 51718.4语义分析 51918.4.1编译 52018.4.2语义模型 52118.5代码转换 52218.5.1创建新树 52218.5.2使用语法重写器 52418.6Visual Studio Code重构 52918.6.1VSIX包 52918.6.2代码重构提供程序 53218.7小结 5379章 测试 53819.1概述 53819.2使用MSTest进行单元测试 53919.2.1使用MSTest创建单元测试 53919.2.2运行单元测试 54119.2.3使用MSTest预期异常 54319.2.4测试全部代码路径 54419.2.5外部依赖 54419.2.6Fakes Framework 54719.2.7IntelliTest 54919.3使用xUnit进行单元测试 54919.3.1使用xUnit和.NET Core 55019.3.2创建Fact属性 55019.3.3创建Theory属性 55119.3.4用dotnet工具运行单元测试 55219.3.5使用Mocking库 55219.4UI 测试 55619.5Web测试 55919.5.1创建Web测试 56019.5.2运行Web测试 56219.5.3Web 负载测试 56319.6小结 565第20章 诊断和ApplicationInsights 56620.1诊断概述 56620.2使用EventSource跟踪 56720.2.1EventSource的简单用法 56820.2.2跟踪工具 57020.2.3派生自EventSource 57220.2.4使用注释和EventSource 57420.2.5创建事件清单模式 57620.2.6使用活动ID 57820.3创建自定义侦听器 58120.4使用Application Insights 58220.4.1创建通用Windows应用程序 58320.4.2创建Application Insights 资源 58320.4.3配置Windows应用程序 58420.4.4使用收集器 58620.4.5编写自定义事件 58720.5小结 588第21章 任务和并行编程 59021.1概述 59021.2Parallel类 59121.2.1使用Parallel.For方法循环 59121.2.2提前停止Parallel.For 59421.2.3Parallel.For的初始化 59521.2.4使用Parallel.ForEach方法循环 59621.2.5通过Parallel.Invoke方法调用多个方法 59721.3任务 59721.3.1启动任务 59721.3.2Future——任务的结果 60021.3.3连续的任务 60121.3.4任务层次结构 60221.3.5从方法中返回任务 60321.3.6等待任务 60321.4取消架构 60421.4.1Parallel.For方法的取消 60421.4.2任务的取消 60521.5数据流 60721.5.1使用动作块 60721.5.2源和目标数据块 60821.5.3连接块 60921.6小结 611第22章 任务同步 61222.1概述 61322.2线程问题 61322.2.1争用条件 61422.2.2死锁 61622.3lock语句和线程安全 61822.4Interlocked类 62322.5Monitor类 62422.6SpinLock结构 62522.7WaitHandle基类 62622.8Mutex类 62722.9Semaphore类 62822.10Events类 63022.11Barrier类 63322.12ReaderWriterLockSlim类 63622.13Timer类 63922.14小结 641第23章 文件和流 64323.1概述 64423.2管理文件系统 64423.2.1检查驱动器信息 64523.2.2使用Path类 64623.2.3创建文件和文件夹 64723.2.4访问和修改文件的属性 64823.2.5创建简单的编辑器 64923.2.6使用File执行读写操作 65123.3枚举文件 65323.4使用流处理文件 65423.4.1使用文件流 65523.4.2读取流 65923.4.3写入流 65923.4.4复制流 66023.4.5随机访问流 66123.4.6使用缓存的流 66323.5使用读取器和写入器 66323.5.1StreamReader类 66323.5.2StreamWriter类 66423.5.3读写二进制文件 66523.6压缩文件 66623.6.1使用压缩流 66723.6.2压缩文件 66823.7观察文件的更改 66823.8使用内存映射的文件 67023.8.1使用访问器创建内存映射文件 67123.8.2使用流创建内存映射文件 67323.9使用管道通信 67523.9.1创建命名管道服务器 67523.9.2创建命名管道客户端 67723.9.3创建匿名管道 67723.10通过Windows运行库使用文件和流 67923.10.1Windows应用程序编辑器 67923.10.2把Windows Runtime类型映射为.NET类型 68223.11小结 684第24章 安全性 68524.1概述 68524.2验证用户信息 68624.2.1使用Windows标识 68624.2.2Windows Principal 68724.2.3使用声称 68824.3加密数据 69024.3.1创建和验证签名 69224.3.2实现安全的数据交换 69424.3.3使用RSA签名和散列 69724.3.4实现数据的保护 70024.4资源的访问控制 70324.5使用证书发布代码 70624.6小结 707第25章 网络 70825.1网络 70825.2HttpClient类 70925.2.1发出异步的Get请求 70925.2.2抛出异常 71025.2.3传递标题 71125.2.4访问内容 71325.2.5用HttpMessageHandler自定义请求 71325.2.6使用SendAsync创建HttpRequestMessage 71425.2.7使用HttpClient和Windows Runtime 71525.3使用WebListener类 71725.4使用实用工具类 72025.4.1URI 72125.4.2IPAddress 72225.4.3IPHostEntry 72325.4.4Dns 72425.5使用TCP 72525.5.1使用TCP创建HTTP客户程序 72625.5.2创建TCP侦听器 72825.5.3创建TCP客户端 73625.5.4TCP和UDP 74025.6使用UDP 74025.6.1建立UDP接收器 74125.6.2创建UDP发送器 74225.6.3使用多播 74525.7使用套接字 74525.7.1使用套接字创建侦听器 74625.7.2使用NetworkStream和套接字 74925.7.3通过套接字使用读取器和写入器 74925.7.4使用套接字实现接收器 75125.8小结 753第26章 Composition 75426.1概述 75426.2Composition库的体系结构 75626.2.1使用特性的Composition 75726.2.2基于约定的部件注册 76326.3定义协定 76626.4导出部件 77026.4.1创建部件

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP