返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 正版新书]深入解析C#(第4版)(英)乔恩·斯基特 著 韩博 译9787115
  • 全店均为全新正版书籍,欢迎选购!新疆西藏青海(可包挂刷).港澳台及海外地区bu bao快递
    • 作者: (英)乔恩·斯基特 著 韩博 译著 | (英)乔恩·斯基特 著 韩博 译编 | (英)乔恩·斯基特 著 韩博 译译 | (英)乔恩·斯基特 著 韩博 译绘
    • 出版社: 人民邮电出版社
    • 出版时间:2020-10-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    君凤文轩图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: (英)乔恩·斯基特 著 韩博 译著| (英)乔恩·斯基特 著 韩博 译编| (英)乔恩·斯基特 著 韩博 译译| (英)乔恩·斯基特 著 韩博 译绘
    • 出版社:人民邮电出版社
    • 出版时间:2020-10-01
    • 版次:1
    • 印次:1
    • 印刷时间:2020-10-01
    • 字数:650000
    • 页数:440
    • 开本:16开
    • ISBN:9787115547255
    • 版权提供:人民邮电出版社
  • 作者: (英)乔恩·斯基特 著 韩博 译
  • 著: (英)乔恩·斯基特 著 韩博 译 译
  • 装帧: 平装
  • 印次: 1
  • 定价: 129
  • ISBN: 9787115547255
  • 出版社: 人民邮电出版社
  • 开本: 16开
  • 印刷时间: 2020-10-01
  • 语种: 中文
  • 出版时间: 2020-10-01
  • 页数: 440
  • 外部编号: 庄村60821
  • 版次: 1
  • 成品尺寸: 暂无
  • 部分C#背景介绍

    章大浪淘沙2

    1.1一门与时俱进的语言2

    1.1.1类型系统——全能型助手3

    1.1.2代码更简洁4

    1.1.3使用LINQ简化数据访问8

    1.1.4异步8

    1.1.5编码效率与执行效率之间的取舍9

    1.1.6快速迭代:使用小版本号10

    1.2一个与时俱进的平台11

    1.3一个与时俱进的社区12

    1.4一本与时俱进的好书13

    1.4.1内容详略得当13

    1.4.2使用Noda Time作为示例14

    1.4.3术语选择14

    1.5小结15

    第二部分从C#2到C#5

    第2章C#218

    2.1泛型18

    2.1.1示例:泛型诞生前的集合19

    2.1.2泛型降临21

    2.1.3泛型的适用范围25

    2.1.4方法类型实参的类型推断26

    2.1.5类型约束28

    2.1.6default运算符和typeof运算符30

    2.1.7泛型类型初始化与状态32

    2.2可空值类型34

    2.2.1目标:表达信息的缺失34

    2.2.2CLR和framework的支持:Nullable<T>结构体35

    2.2.3语言层面支持38

    2.3简化委托的创建43

    2.3.1方法组转换43

    2.3.2匿名方法44

    2.3.3委托的兼容性45

    2.4迭代器46

    2.4.1迭代器简介47

    2.4.2延迟执行48

    2.4.3执行yield语句49

    2.4.4延迟执行的重要性50

    2.4.5处理finally块51

    2.4.6处理finally的重要性53

    2.4.7迭代器实现机制概览54

    2.5一些小的特性58

    2.5.1局部类型59

    2.5.2静态类60

    2.5.3属性的getter/setter访问分离61

    2.5.4命名空间别名61

    2.5.5编译指令63

    2.5.6固定大小的缓冲区64

    2.5.7InternalsVisibleTo65

    2.6小结65

    第3章C#3:LINQ及相关特性66

    3.1自动实现的属性66

    3.2隐式类型67

    3.2.1类型术语67

    3.2.2隐式类型的局部变量68

    3.2.3隐式类型的数组69

    3.3对象和集合的初始化71

    3.3.1对象初始化器和集合初始化器简介71

    3.3.2对象初始化器72

    3.3.3集合初始化器74

    3.3.4仅用单一表达式就能完成初始化的好处75

    3.4匿名类型76

    3.4.1基本语法和行为76

    3.4.2编译器生成类型78

    3.4.3匿名类型的局限性79

    3.5lambda表达式80

    3.5.1lambda表达式语法简介81

    3.5.2捕获变量82

    3.5.3表达式树89

    3.6扩展方法91

    3.6.1声明扩展方法91

    3.6.2调用扩展方法92

    3.6.3扩展方法的链式调用93

    3.7查询表达式94

    3.7.1从C#到C#的查询表达式转换95

    3.7.2范围变量和隐形标识符95

    3.7.3选择使用哪种LINQ语法96

    3.8终极形态:LINQ97

    3.9小结98

    第4章C#4:互操作性提升99

    4.1动态类型99

    4.1.1动态类型介绍100

    4.1.2超越反射的动态行为104

    4.1.3动态行为机制速览108

    4.1.4动态类型的局限与意外111

    4.1.5动态类型的使用建议115

    4.2可选形参和命名实参116

    4.2.1带默认值的形参和带名字的实参117

    4.2.2如何决定方法调用的含义118

    4.2.3对版本号的影响119

    4.3COM互操作性提升121

    4.3.1链接主互操作程序集121

    4.3.2COM组件中的可选形参123

    4.3.3命名索引器124

    4.4泛型型变125

    4.4.1泛型型变示例125

    4.4.2接口和委托声明中的变体语法126

    4.4.3变体的使用限制127

    4.4.4泛型型变实例129

    4.5小结130

    第5章编写异步代码131

    5.1异步函数简介132

    5.1.1异步问题初体验133

    5.1.2拆分个例子134

    5.2对异步模式的思考135

    5.2.1关于异步执行本质的思考136

    5.2.2同步上下文137

    5.2.3异步方法模型138

    5.3async方法声明139

    5.3.1async方法的返回类型140

    5.3.2async方法的参数141

    5.4await表达式141

    5.4.1可等待模式142

    5.4.2await表达式的限制条件144

    5.5返回值的封装145

    5.6异步方法执行流程146

    5.6.1await的操作对象与时机146

    5.6.2await表达式的运算147

    5.6.3可等待模式成员的使用150

    5.6.4异常拆封151

    5.6.5完成方法152

    5.7异步匿名函数156

    5.8C#7自定义task类型157

    5.8.199.9%的情况:ValueTask<TResult>158

    5.8.2剩下0.1%的情况:创建自定义task类型160

    5.9C#7.1中的异步Main方法161

    5.10使用建议162

    5.10.1使用ConfigureAwait避免上下文捕获(择机使用)163

    5.10.2启动多个独立task以实现并行164

    5.10.3避免同步代码和异步代码混用165

    5.10.4根据需要提供取消机制165

    5.10.5测试异步模式165

    5.11小结166

    第6章异步原理167

    6.1生成代码的结构168

    6.1.1桩方法:准备和开始步171

    6.1.2状态机的结构172

    6.1.3MoveNext()方法(整体介绍)175

    6.1.4SetStateMachine方法以及状态机的装箱事宜177

    6.2一个简单的MoveNext()实现177

    6.2.1一个完整的具体示例178

    6.2.2MoveNext()方法的通用结构179

    6.2.3详探await表达式181

    6.3控制流如何影响MoveNext()183

    6.3.1await表达式之间的控制流很简单183

    6.3.2在循环中使用await184

    6.3.3在try/finally块中使用await表达式185

    6.4执行上下文和执行流程188

    6.5再探自定义task类型189

    6.6小结190

    第7章C#5附加特性191

    7.1在foreach循环中捕获变量191

    7.2调用方信息attribute193

    7.2.1基本行为193

    7.2.2日志194

    7.2.3简化INotifyProperty-Changed的实现195

    7.2.4调用方信息attribute的小众使用场景196

    7.2.5旧版本.NET使用调用方信息attribute201

    7.3小结202

    第三部分C#6

    第8章极简属性和表达式主体成员204

    8.1属性简史204

    8.2自动实现属性的升级206

    8.2.1只读的自动实现属性206

    8.2.2自动实现属性的初始化207

    8.2.3结构体中的自动实现属性208

    8.3表达式主体成员210

    8.3.1简化只读属性的计算210

    8.3.2表达式主体方法、索引器和运算符213

    8.3.3C#6中表达式主体成员的限制214

    8.3.4表达式主体成员使用指南216

    8.4小结218

    第9章字符串特性219

    9.1NET中的字符串格式化回顾219

    9.1.1简单字符串格式化219

    9.1.2使用格式化字符串来实现自定义格式化220

    9.1.3属地化221

    9.2内插字符串字面量介绍224

    9.2.1简单内插224

    9.2.2使用内插字符串字面量格式化字符串225

    9.2.3内插原义字符串字面量225

    9.2.4编译器对内插字符串字面量的处理(部分)226

    9.3使用FormattableSting实现属地化227

    9.3.1编译器对内插字符串字面量的处理(第2部分)228

    9.3.2在特定culture下格式化一个FormattableString229

    9.3.3FormattableString的其他用途230

    9.3.4在旧版本.NET中使用FormattableString233

    9.4使用指南和使用限制234

    9.4.1适合开发人员和机器,但可能不适合最终用户235

    9.4.2关于内插字符串字面量的硬性限制236

    9.4.3何时可以用但不应该用238

    9.5使用nameof访问标识符239

    9.5.1nameof的个例子239

    9.5.2nameof的一般用法241

    9.5.3使用nameof的技巧与陷阱243

    9.6小结246

    0章简洁代码的特性“盛宴”247

    10.1using static指令247

    10.1.1引入静态成员247

    10.1.2using static与扩展方法250

    10.2对象初始化器和集合初始化器特性增强252

    10.2.1对象初始化器中的索引器252

    10.2.2在集合初始化器中使用扩展方法256

    10.2.3测试代码与产品代码259

    10.3空值条件运算符260

    10.3.1简单、安全地解引用260

    10.3.2关于空值条件运算符的更多细节261

    10.3.3处理布尔值比较262

    10.3.4索引器与空值条件运算符263

    10.3.5使用空值条件运算符提升编程效率263

    10.3.6空值条件运算符的局限性265

    10.4异常过滤器265

    10.4.1异常过滤器的语法和语义266

    10.4.2重试操作270

    10.4.3记录日志的“副作用”272

    10.4.4单个、有针对性的日志过滤器273

    10.4.5为何不直接抛出异常273

    10.5小结274

    第四部分C#7及其后续版本

    1章使用元组进行组合277

    11.1元组介绍277

    11.2元组字面量和元组类型278

    11.2.1语法278

    11.2.2元组字面量推断元素名称(C#7.1)280

    11.2.3元组用作变量的容器281

    11.3元组类型及其转换285

    11.3.1元组字面量的类型285

    11.3.2从元组字面量到元组类型的转换287

    11.3.3元组类型之间的转换290

    11.3.4类型转换的应用292

    11.3.5继承时的元素名称检查292

    11.3.6等价运算符与不等价运算符(C#7.3)293

    11.4CLR 中的元组294

    11.4.1引入System.ValueTuple<...>294

    11.4.2处理元素名称294

    11.4.3元组类型转换的实现296

    11.4.4元组的字符串表示296

    11.4.5一般等价比较和排序比较297

    11.4.6结构化等价比较和排序比较298

    11.4.7独素元组和巨型元组299

    11.4.8非泛型ValueTuple结构体300

    11.4.9扩展方法301

    11.5元组的替代品301

    11.5.1System.Tuple<...>301

    11.5.2匿名类型301

    11.5.3命名类型302

    11.6元组的使用建议302

    11.6.1非公共API以及易变的代码303

    11.6.2局部变量303

    11.6.3字段304

    11.6.4元组和动态类型不太搭调305

    11.7小结306

    2章分解与模式匹配307

    12.1分解元组307

    12.1.1分解成新变量308

    12.1.2通过分解操作为已有变量或者属性赋值310

    12.1.3元组字面量分解的细节313

    12.2非元组类型的分解操作314

    12.2.1实例分解方法314

    12.2.2扩展分解方法与重载315

    12.2.3编译器对于Deconstruct调用的处理316

    12.3模式匹配简介317

    12.4C#7.0可用的模式319

    12.4.1常量模式319

    12.4.2类型模式320

    12.4.3var模式323

    12.5模式匹配与is运算符的搭配使用324

    12.6在switch语句中使用模式325

    12.6.1哨兵语句326

    12.6.2case标签中的模式变量的作用域328

    12.6.3基于模式的switch语句的运算顺序329

    12.7对模式特性使用的思考330

    12.7.1发现分解的时机330

    12.7.2发现模式匹配的使用时机331

    12.8小结331

    3章引用传递提升执行效率332

    13.1回顾:ref知多少333

    13.2ref局部变量和ref return336

    13.2.1ref局部变量336

    13.2.2ref return341

    13.2.3条件运算符?:和ref值(C#7.2)343

    13.2.4ref readonly(C#7.2)343

    13.3in参数(C#7.2)345

    13.3.1兼容性考量346

    13.3.2in参数惊人的不可变性:外部修改347

    13.3.3使用in参数进行方法重载348

    13.3.4in参数的使用指导348

    13.4将结构体声明为只读(C#7.2)350

    13.4.1背景:只读变量的隐式复制350

    13.4.2结构体的只读修饰符352

    13.4.3XML序列化是隐式读写属性353

    13.5使用ref参数或者in参数的扩展方法(C#7.2)354

    13.5.1在扩展方法中使用ref/in参数来规避复制354

    13.5.2ref和in扩展方法的使用限制355

    13.6类ref结构体(C#7.2)357

    13.6.1类ref结构体的规则357

    13.6.2Span<T>和栈内存分配358

    13.6.3类ref结构体的IL表示362

    13.7小结362

    4章C#7的代码简洁之道363

    14.1局部方法363

    14.1.1局部方法中的变量访问364

    14.1.2局部方法的实现367

    14.1.3使用指南371

    14.2out变量373

    14.2.1out参数的内联变量声明374

    14.2.2C#7.3 关于out变量和模式变量解除的限制374

    14.3数字字面量的改进375

    14.3.1二进制整型字面量375

    14.3.2下划线分隔符376

    14.4throw表达式377

    14.5default字面量(C#7.1)377

    14.6非尾部命名实参379

    14.7私有受保护的访问权限(C#7.2)380

    14.8C#7.3的一些小改进380

    14.8.1泛型类型约束381

    14.8.2重载决议改进381

    14.8.3字段的attribute支持自动实现的属性382

    14.9小结383

    5章C#8及其后续384

    15.1可空引用类型384

    15.1.1可空引用类型可以解决什么问题385

    15.1.2在使用引用类型时改变其含义385

    15.1.3输入可空引用类型387

    15.1.4编译时和执行期的可空引用类型387

    15.1.5damnit运算符或者bang运算符389

    15.1.6可空引用类型迁移的经验391

    15.1.7未来的改进393

    15.2switch表达式396

    15.3嵌套模式匹配398

    15.3.1使用模式来匹配属性398

    15.3.2分解模式399

    15.3.3忽略模式中的类型399

    15.4index和range400

    15.4.1index与range类型和字面量401

    15.4.2应用index和range402

    15.5更多异步集成403

    15.5.1使用await实现异步资源回收403

    15.5.2使用foreach await的异步迭代404

    15.5.3异步迭代器407

    15.6预览版中尚未提供的特性408

    15.6.1默认接口方法408

    15.6.2记录类型409

    15.6.3更多特性410

    15.7欢迎加入412

    15.8小结412

    附录特性与语言版本对照表413

    乔恩·斯基特(Jon Skeet) 谷歌不错软件工程师,微软C# MVP,拥有近20年C#项目开发经验。自2002年来,他一直是C#社区、新闻组、靠前会议和Stack Overflow网站中很好活跃的技术专家,回答了数以万计的C#和.NET相关问题,是Stack Overflow上的传奇贡献者。

    C#领域的经典著作,新版重磅升级!

    1.知名技术专家的经典之作,在C#和.NET领域享有盛誉。
    2.与其他泛泛介绍C#的图书不同,本书深度探究C#的特性,并结合技术发展,引领读者深入C#的时空。
    3.作者从语言设计的动机出发,介绍支持这些特性的核心概念;基于C#语言的发展背景介绍新的语言特性,并用极富实际意义的示例,向读者展示编写代码和设计解决方案的理想方式。
    4.新版重新组织了内容,进行了重写与浓缩,还全面更新并细致剖析了C#6和C#7的新增特性。
    5.提供源代码。

    作者将多年的C#开发经验与读者分享,读者可咀其精华、免走弯路,使程序设计水平更上一层楼。

    C#领域不可多得的经典著作,新版重磅升级!
    1.知名技术专家的经典之作,在C#和.NET领域享有盛誉。
    2.与其他泛泛介绍C#的图书不同,本书深度探究C#的特性,并结合技术发展,引领读者深入C#的时空。
    3.作者从语言设计的动机出发,介绍支持这些特性的核心概念;基于C#语言的发展背景介绍新的语言特性,并用极富实际意义的示例,向读者展示编写代码和设计解决方案的理想方式。
    4.新版重新组织了内容,进行了重写与浓缩,还全面更新并细致剖析了C#6和C#7的新增特性。
    5.提供源代码。
    作者将多年的C#开发经验与读者分享,读者可咀其精华、免走弯路,使程序设计水平更上一层楼。

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购