成功加入购物车

去购物车结算 X
龙香书城
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)
  • C#高级编程(第12版)

C#高级编程(第12版)

举报

全新正版现货

  • 作者: 
  • 出版社:    清华大学出版社
  • ISBN:    9787302618775
  • 出版时间: 
  • 装帧:    平装
  • 开本:    128开
  • 纸张:    胶版纸
  • 作者: 
  • 出版社:  清华大学出版社
  • ISBN:  9787302618775
  • 出版时间: 
  • 装帧:  平装
  • 开本:  128开
  • 纸张:  胶版纸

售价 99.00 5.0折

定价 ¥198.00 

品相 全新品相描述

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2023-05-12

    数量
    仅1件在售,欲购从速
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 商品分类:
      计算机与互联网
      货号:
      29487971
      品相描述:全新
      正版全新
      商品描述:

      【编辑推荐】:


      这本专家级指南是有经验的程序员学习C#的超快方式。C#旨在帮助开发人员更快地完成更多工作,没有人比Microsoft MVP Christian Nagel更适合撰写这样一本对于现实开发有巨大帮助作用的权威指南。他从实用的角度出发,以清晰且易于理解的方式,向开发人员展示了如何为Windows和Linux平台构建.NET解决方案,如何使用Microsoft Azure服务来扩展开发,并以其他多种有意义的方式进行交互。
      ? 为需要新的库和工具的高级开发人员介绍了C#和.NET的众多新特性
      ? 揭示了使用.NET库的最新技巧和实用提示,包括通道、异步流和新的JSON序列化器等
      ? 论述了使用ASP.NET Core、gRPC、SignalR、Azure Functions和Docker开发微服务的创新方式
      ? 为开发Web应用程序提供了逐步指导,包括ASP.NET Core Razor、ASP.NET Core Blazor Server和Blazor WebAssembly
      ? 讨论了如何使用新的WinUI 3库开发Windows桌面应用程序

      【内容简介】:

      ? 为需要新的库和工具的高级开发人员介绍了C#和.NET的众多新特性
      ? 揭示了使用.NET库的最新技巧和实用提示,包括通道、异步流和新的JSON序列化器等
      ? 论述了使用ASP.NET Core、gRPC、SignalR、Azure Functions和Docker开发微服务的创新方式
      ? 为开发Web应用程序提供了逐步指导,包括ASP.NET Core Razor、ASP.NET Core Blazor Server和Blazor WebAssembly
      ? 讨论了如何使用新的WinUI 3库开发Windows桌面应用程序

      【作者简介】:

      Christian Nagel是Visual Studio和开发技术方向的Microsoft MVP,也是一名软件架构师和经验丰富的开发人员。他从2000年开始使用.NET技术构建解决方案。他撰写了许多备受称赞的.NET图书,并在国际会议,如Microsoft Ignite(原来的TechEd)和TechDays上发言。他是.NET用户组的支持者,微软认证培训师,也是WinUI和.NET MAUI应用程序、ASP.NET Core和Microsoft Azure的专业开发人员。

      【目录】:

       
       
      第 I 部分  C#语言
      第1章  .NET应用程序和工具 3
      1.1  从.NET Framework到.NET Core,
      再到.NET 3
      1.2  .NET术语 4
      1.2.1  .NET SDK 4
      1.2.2  .NET运行库 5
      1.2.3  公共语言运行库 5
      1.2.4  .NET编译平台 6
      1.2.5  .NET Framework 6
      1.2.6  .NET Core 6
      1.2.7  .NET 7
      1.2.8  .NET Standard 7
      1.2.9  NuGet包 7
      1.2.10  名称空间 8
      1.3  .NET支持周期 9
      1.4  应用程序类型和技术 9
      1.4.1  数据访问 9
      1.4.2  Windows应用程序 10
      1.4.3  Web应用程序 10
      1.4.4  服务 11
      1.4.5  SignalR 11
      1.4.6  Microsoft Azure 11
      1.5  开发工具 13
      1.5.1  .NET CLI 13
      1.5.2  Visual Studio Code 13
      1.5.3  Visual Studio Community 13
      1.5.4  Visual Studio Professional 13
      1.5.5  Visual Studio Enterprise 13
      1.5.6  Visual Studio for Mac 14
      1.5.7  Windows终端 14
      1.5.8  WSL 2 14
      1.5.9  Docker Desktop 14
      1.6  使用.NET CLI 15
      1.6.1  创建应用程序 15
      1.6.2  顶级语句 16
      1.6.3  选择框架和语言版本 16
      1.6.4  构建应用程序 17
      1.6.5  运行应用程序 18
      1.6.6  创建Web应用程序 18
      1.6.7  发布应用程序 19
      1.6.8  自包含部署 19
      1.6.9  创建单个可执行文件 20
      1.6.10  readytorun 20
      1.6.11  剪裁 21
      1.7  小结 21
      第2章  核心C# 23
      2.1  C#基础 24
      2.1.1  顶级语句 24
      2.1.2  变量 25
      2.1.3  命令行实参 25
      2.1.4  变量的作用域 26
      2.1.5  常量 27
      2.1.6  在顶级语句中使用方法和类型 28
      2.2  可空类型 28
      2.2.1  可空值类型 29
      2.2.2  可空引用类型 29
      2.3  使用预定义数据类型 31
      2.3.1  整型 31
      2.3.2  BigInteger 32
      2.3.3  本机整数类型 32
      2.3.4  数字分隔符 32
      2.3.5  二进制值 32
      2.3.6  浮点类型 33
      2.3.7  bool类型 33
      2.3.8  字符类型 34
      2.3.9  数字的字面值 34
      2.3.10  object类型 34
      2.4  程序流控制 35
      2.4.1  if语句 35
      2.4.2  is运算符的模式匹配 36
      2.4.3  switch语句 36
      2.4.4  switch语句的模式匹配 37
      2.4.5  switch表达式 38
      2.4.6  for循环 39
      2.4.7  while循环 41
      2.4.8  do…while循环 41
      2.4.9  foreach循环 41
      2.4.10  退出循环 42
      2.5  名称空间 42
      2.5.1  using语句 43
      2.5.2  名称空间的别名 43
      2.6  使用字符串 43
      2.6.1  使用StringBuilder 43
      2.6.2  字符串插值 44
      2.6.3  FormattableString 44
      2.6.4  字符串格式 45
      2.6.5  verbatim字符串 45
      2.6.6  字符串的范围 46
      2.7  注释 46
      2.7.1  源文件中的内部注释 46
      2.7.2  XML文档 47
      2.8  C#预处理器指令 48
      2.8.1  #define和#undef 48
      2.8.2  #if、#elif、#else和#endif 49
      2.8.3  #warning和#error 50
      2.8.4  #region和#endregion 50
      2.8.5  #line 50
      2.8.6  #pragma 51
      2.8.7  #nullable 51
      2.9  C#编程准则 51
      2.9.1  关于标识符的规则 51
      2.9.2  用法约定 52
      2.9.3  命名约定 52
      2.9.4  属性和方法的使用 54
      2.9.5  字段的使用 54
      2.10  小结 55
      第3章  类、记录、结构和元组 56
      3.1  创建及使用类型 57
      3.2  按值传递和按引用传递 57
      3.3  类 59
      3.3.1  字段 60
      3.3.2  只读字段 60
      3.3.3  属性 61
      3.3.4  方法 64
      3.3.5  构造函数 68
      3.3.6  局部函数 70
      3.3.7  泛型方法 71
      3.3.8  扩展方法 71
      3.3.9  匿名类型 72
      3.4  记录 73
      3.4.1  不可变类型 73
      3.4.2  名义记录 73
      3.4.3  位置记录 73
      3.4.4  记录的相等性比较 74
      3.4.5  with表达式 74
      3.5  结构 75
      3.6  枚举类型 76
      3.7  ref、in和out 78
      3.7.1  ref参数 78
      3.7.2  in参数 79
      3.7.3  ref return 80
      3.7.4  out参数 81
      3.8  元组 81
      3.8.1  声明和初始化元组 82
      3.8.2  元组解构 83
      3.8.3  元组的返回 83
      3.9  ValueTuple 83
      3.10  解构 84
      3.11  模式匹配 85
      3.11.1  使用元组进行模式匹配 85
      3.11.2  属性模式 86
      3.12  分部类型 87
      3.13  小结 89
      第4章  C#面向对象编程 90
      4.1  面向对象 90
      4.2  类的继承 91
      4.2.1  虚方法 91
      4.2.2  隐藏方法 94
      4.2.3  调用方法的基类版本 95
      4.2.4  抽象类和抽象方法 96
      4.2.5  密封类和密封方法 96
      4.2.6  派生类的构造函数 97
      4.3  修饰符 99
      4.3.1  访问修饰符 99
      4.3.2  其他修饰符 100
      4.4  记录的继承 100
      4.5  使用接口 101
      4.5.1  预定义接口 102
      4.5.2  使用接口进行依赖注入 104
      4.5.3  显式和隐式实现的接口 105
      4.5.4  对比接口和类 106
      4.5.5  默认接口方法 106
      4.6  泛型 109
      4.7  小结 112
      第5章  运算符和类型强制转换 113
      5.1  运算符 113
      5.1.1  复合赋值运算符 114
      5.1.2  条件运算符 115
      5.1.3  checked和unchecked运算符 115
      5.1.4  is和as运算符 116
      5.1.5  sizeof运算符 117
      5.1.6  typeof运算符 118
      5.1.7  nameof 运算符 118
      5.1.8  索引器 118
      5.1.9  空合并运算符和空合并赋值
      运算符 119
      5.1.10  空值条件运算符 119
      5.2  使用二进制运算符 121
      5.2.1  位的移动 122
      5.2.2  有符号数和无符号数 123
      5.3  类型的安全性 125
      5.3.1  类型转换 125
      5.3.2  装箱和拆箱 128
      5.4  运算符重载 128
      5.4.1  运算符的工作方式 129
      5.4.2  Vector类型的运算符重载 130
      5.5  比较对象的相等性 132
      5.6  实现自定义的索引器 134
      5.7  用户定义的转换 136
      5.7.1  实现用户定义的类型强制转换 136
      5.7.2  多重类型强制转换 142
      5.8  小结 145
      第6章  数组 147
      6.1  相同类型的多个对象 147
      6.2  简单数组 148
      6.2.1  数组的声明和初始化 148
      6.2.2  访问数组元素 149
      6.2.3  使用引用类型 149
      6.3  多维数组 150
      6.4  锯齿数组 151
      6.5  Array类 152
      6.5.1  创建数组 152
      6.5.2  复制数组 153
      6.5.3  排序 154
      6.6  数组作为参数 156
      6.7  枚举器 157
      6.7.1  IEnumerator接口 157
      6.7.2  foreach语句 158
      6.7.3  yield语句 158
      6.8  对数组使用Span 160
      6.8.1  创建切片 160
      6.8.2  使用Span改变值 161
      6.8.3  只读的Span 162
      6.9  索引和范围 163
      6.9.1  索引和hat运算符 163
      6.9.2  范围 163
      6.9.3  高效地修改数组内容 164
      6.9.4  自定义集合的索引和范围 165
      6.10  数组池 165
      6.10.1  创建数组池 165
      6.10.2  从池中租用内存 166
      6.10.3  将内存返回给池 166
      6.11  BitArray 167
      6.12  小结 169
      第7章  委托、lambda表达式和事件 171
      7.1  引用方法 171
      7.2  委托 172
      7.2.1  声明委托 172
      7.2.2  使用委托 173
      7.2.3  将委托传递给方法 175
      7.2.4  Action<T>和Func<T>委托 176
      7.2.5  多播委托 177
      7.2.6  匿名方法 179
      7.3  lambda表达式 180
      7.3.1  参数 181
      7.3.2  多行代码 181
      7.3.3  闭包 181
      7.4  事件 182
      7.4.1  事件发布程序 183
      7.4.2  事件侦听器 184
      7.5  小结 185
      第8章  集合 187
      8.1  概述 187
      8.2  集合接口和类型 188
      8.3  列表 188
      8.3.1  创建列表 189
      8.3.2  集合初始化器 190
      8.3.3  添加元素 190
      8.3.4  插入元素 191
      8.3.5  访问元素 191
      8.3.6  删除元素 192
      8.3.7  搜索 192
      8.3.8  排序 194
      8.3.9  只读集合 195
      8.3.10  队列 195
      8.4  栈 199
      8.5  链表 200
      8.6  有序列表 202
      8.7  字典 203
      8.7.1  字典初始化器 204
      8.7.2  键的类型 204
      8.7.3  字典示例 206
      8.7.4  Lookup类 209
      8.7.5  有序字典 209
      8.8  集 210
      8.9  性能 212
      8.10  不变的集合 213
      8.10.1  使用构建器和不变的集合 215
      8.10.2  不变集合类型和接口 215
      8.10.3  使用LINQ和不变的数组 216
      8.11  小结 216
      第9章  LINQ 217
      9.1  LINQ概述 217
      9.1.1  列表和实体 218
      9.1.2  LINQ查询 220
      9.1.3  扩展方法 220
      9.1.4  推迟查询的执行 221
      9.2  标准的查询操作符 223
      9.2.1  筛选 224
      9.2.2  用索引筛选 225
      9.2.3  类型筛选 226
      9.2.4  复合的from子句 226
      9.2.5  排序 227
      9.2.6  分组 229
      9.2.7  LINQ 查询中的变量 230
      9.2.8  对嵌套的对象分组 231
      9.2.9  内连接 232
      9.2.10  左外连接 235
      9.2.11  组连接 236
      9.2.12  集操作 239
      9.2.13  合并 240
      9.2.14  分区 241
      9.2.15  聚合操作符 242
      9.2.16  转换操作符 243
      9.2.17  生成操作符 245
      9.3  并行LINQ 246
      9.3.1  并行查询 246
      9.3.2  取消 247
      9.4  表达式树 248
      9.5  LINQ提供程序 250
      9.6  小结 251
      第10章  错误和异常 253
      10.1  处理错误 253
      10.2  预定义的异常类 254
      10.3  捕获异常 255
      10.3.1  异常和性能 257
      10.3.2  实现多个catch块 258
      10.3.3  捕获其他代码中的异常 260
      10.3.4  System.Exception属性 261
      10.3.5  异常过滤器 261
      10.3.6  重新抛出异常 262
      10.3.7  没有处理异常时发生的情况 266
      10.4  用户定义的异常类 266
      10.4.1  捕获用户定义的异常 267
      10.4.2  抛出用户定义的异常 269
      10.4.3  定义用户定义的异常类 272
      10.5  调用者信息 273
      10.6  小结 275
      第11章  任务和异步编程 277
      11.1  异步编程的重要性 277
      11.2  基于任务的异步模式 278
      11.3  任务 280
      11.3.1  创建任务 280
      11.3.2  调用异步方法 281
      11.3.3  使用Awaiter 282
      11.3.4  延续任务 282
      11.3.5  同步上下文 283
      11.3.6  使用多个异步方法 283
      11.3.7  使用ValueTasks 284
      11.4  错误处理 285
      11.4.1  异步方法的异常处理 286
      15.4.2  多个异步方法的异常处理 286
      11.4.3  使用AggregateException
      信息 287
      11.5  取消异步方法 288
      11.6  异步流 289
      11.7  异步与Windows应用程序 290
      11.7.1  配置await 291
      11.7.2  切换到UI线程 292
      11.7.3  使用IAsyncOperation 293
      11.7.4  避免阻塞情况 293
      11.8  小结 294
      第12章  反射、元数据和源代码生成器 295
      12.1  在运行期间检查代码和动态
      编程 295
      12.2  自定义特性 296
      12.2.1  编写自定义特性 296
      12.2.2  自定义特性示例:
      WhatsNewAttributes 299
      12.3  使用反射 301
      12.3.1  System.Type类 301
      12.3.2  TypeView示例 303
      12.3.3  Assembly类 305
      12.3.4  完成WhatsNewAttributes
      示例 306
      12.4  为反射使用动态语言扩展 309
      12.4.1  创建Calculator库 309
      12.4.2  动态实例化类型 310
      12.4.3  用Reflection API调用成员 310
      12.4.4  使用动态类型调用成员 311
      12.5  ExpandoObject 312
      12.6  源代码生成器 314
      12.6.1  Hello, World源代码生成器 314
      12.6.2  使用分部方法的源代码
      生成器 316
      12.7  小结 320
      第13章  托管和非托管内存 321
      13.1  内存 321
      13.2  后台内存管理 322
      13.2.1  值数据类型 322
      13.2.2  引用数据类型 324
      13.2.3  垃圾收集 326
      13.3  强引用和弱引用 328
      13.4  处理非托管的资源 329
      13.4.1  析构函数或终结器 329
      13.4.2  IDisposable和IAsyncDisposable
      接口 330
      13.4.3  using语句和using声明 331
      13.4.4  实现IDisposable接口和析构
      函数 332
      13.4.5  IDisposable和终结器的规则 333
      13.5  不安全的代码 333
      13.5.1  用指针直接访问内存 334
      13.5.2  用unsafe关键字编写不安全
      的代码 334
      13.5.3  指针的语法 335
      13.5.4  将指针强制转换为整数类型 337
      13.5.5  指针类型之间的强制转换 337
      13.5.6  void指针 337
      13.5.7  指针算术的运算 338
      13.5.8  sizeof运算符 339
      13.5.9  结构指针:指针成员访问
      运算符 339
      13.5.10  类成员的指针 340
      13.5.11  指针示例:PointerPlayground 341
      13.5.12  函数指针 344
      13.5.13  使用指针优化性能 345
      13.6  Span<T> 348
      13.6.1  Span引用托管堆 349
      13.6.2  Span引用栈 349
      13.6.3  Span引用本机堆 350
      13.6.4  Span扩展方法 351
      13.7  平台调用 351
      13.7.1  调用本机Windows API 352
      13.7.2  调用Linux本机API 354
      13.7.3  使用库调用本机API 356
      13.8  小结 356
      第 II 部分  库
      第14章  库、程序集、包和NuGet 359
      14.1  库的地狱 359
      14.2  程序集 361
      14.3  创建和使用库 362
      14.3.1  .NET 标准 363
      14.3.2  创建.NET标准库 363
      14.3.3  解决方案文件 364
      14.3.4  引用项目 364
      14.3.5  引用NuGet包 365
      14.3.6  NuGet的来源 366
      14.4  创建NuGet包

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看