Effective C# 第3版学习地图:5章50条

按Addison-Wesley第3版权威目录组织5章50条,建立语言、资源、泛型、LINQ和异常的学习路径、横向contract链与验收门禁。

学习目标

  • 能描述第3版5个原章与50条Item的范围,判断任一实践问题应进入哪个章节审计
  • 能绘制type、lifetime、execution和failure四条跨章contract chain,解释章节间依赖
  • 能设计目录、决策、视觉、实践和版本边界五道学习门禁,复现每章通过证据

机制总览

五章五十条建议如何汇成四条契约链

  1. 1

    类型契约

    语言习惯和泛型共同限定调用方能表达什么。

  2. 2

    生命周期契约

    资源章节确定对象从创建到释放的唯一责任人。

  3. 3

    执行与失败契约

    LINQ 决定何时执行,异常章节决定失败后保留什么状态。

先按顺序建立机制,再进入实验切换阶段并检查失效证据。

章级决策实验

五章五十条建议如何汇成四条契约链

不要逐条背 Item;选择一条契约链,检查建议如何跨章节约束同一个系统。

选择推理阶段

当前阶段 · 类型契约

语言习惯和泛型共同限定调用方能表达什么。

可核验证据

编译错误、API 签名与替换测试。

有效的学习地图不是目录复述,而是能把一个代码决策沿类型、生命周期、执行与失败边界追到底。

失效—证据矩阵

五章五十条建议如何汇成四条契约链

类型契约

典型失效

字符串协议或过宽约束让错误推迟到运行时。

核验证据

编译错误、API 签名与替换测试。

生命周期契约

典型失效

GC 被误当成外部资源释放协议。

核验证据

Dispose 路径、owner graph 与泄漏剖析。

执行与失败契约

典型失效

延迟执行跨出资源边界,异常留下部分更新。

核验证据

枚举次数、查询日志与失败后的状态断言。

每个判断都必须能落到观测、测试或产物,不能只凭代码表面推测。

为什么先核对第3版目录再学习

本课程对应Bill Wagner的Effective C#, Third Edition,面向C# 6.0,ISBN 978-0-13-457944-3。出版社目录是5章50条:Chapter 1 Items 1-10、Chapter 2 Items 11-17、Chapter 3 Items 18-28、Chapter 4 Items 29-44、Chapter 5 Items 45-50。原书没有“并行与异步”章节,也没有“属性优先”作为Item 1;那属于其他版本或姊妹书主题。

第一次学习按原章顺序建立完整索引;第二次复习再根据当前项目的最高风险,从四条横向contract chain进入并回链到对应Item。这样既不漏目录,也不把阅读顺序误当固定的问题排查顺序。

先预测:按十个热门主题抽样能否代表50条完整建议;把现代C#语法直接替换进2017原文是否仍叫忠实覆盖;看完示意图但未运行failure case是否算掌握?三个答案都是否。

五章纵向路线:从Source Choice到Failure State

Chapter 1: C# Language Idioms (Items 1-10)

先练source-level decisions:type inference何时增强可读性,readonly如何跨version,pattern/cast怎样表达failure,文本如何保留culture,delegate/event如何定义调用权,boxing与new hiding如何影响runtime。

Chapter 2: .NET Resource Management (Items 11-17)

再建立lifecycle:GC与resource release分工,member/static/constructor初始化收敛到一处,allocation需要profile,constructor禁止virtual dispatch,Dispose按ownership和SafeHandle边界实现。

Chapter 3: Working with Generics (Items 18-28)

把能力搬到type system:minimal constraints、measured specialization、ordering laws、disposable T、variance、delegate method capability、generic API shape、classic compatibility与extension contract。

Chapter 4: Working with LINQ (Items 29-44)

分开query construction与execution:iterator、composition、function parameter、extension resolution、query mapping、lazy/eager、lambda fault、capture、provider、cardinality与bound variable都在enumeration boundary验收。

Chapter 5: Exception Practices (Items 45-50)

最后定义失败后的系统:method contract failure、using/finally、custom exception、strong guarantee、exception filter与filter observation共同保证可清理、可诊断、可恢复。

分步1 / 3

切换5个官方章节与Item范围

Language -> Resource -> Generic -> LINQ -> Exception
syntax      lifetime    type       execution  failure
choice      owner       relation   boundary   guarantee

四条横向Contract Chain

纵向顺序确保完整覆盖,横向复盘把分散建议连成真实工程链。

  1. Type chain:typed API与dispatch,经generic constraint/variance,到LINQ delegate/expression binding。
  2. Lifetime chain:delegate/event retention、resource ownership、disposable T、iterator/resource capture与finally cleanup。
  3. Execution chain:callback invocation、generic specialization、query enumeration、provider terminal与filter search。
  4. Failure chain:cast/format failure、partial construction、callback/query exception、strong guarantee与handler policy。
分步1 / 3

切换compile-time、lifetime、execution与failure聚类

await using var scope = await repository.OpenAsync(token);
var query = scope.Orders.Where(order => order.Total > minimum);
var snapshot = await query.ToListAsync(token); // execution and lifetime boundary

每章如何达到100分学习门禁

每章固定三轮:先从Item titles建立decision questions;再操作3个chapter-specific interactive labs预测state变化;最后用代码、compile case、provider inspection或fault injection验收。现代补充必须标出版本,不覆盖原书历史位置。

分步1 / 3

切换目录、决策、视觉、实践与版本门禁

read Item title -> state a decision -> predict -> interact -> run evidence -> review fault -> pass gate

本章回顾:完整、分层、可复现

  1. 课程只对应第3版、C# 6.0、5章50条出版社目录。
  2. 纵向按语言、资源、泛型、LINQ、异常推进,前一章为后一章提供contract vocabulary。
  3. 横向以type、lifetime、execution和failure复盘真实系统。
  4. 每章交付专属视觉、decision artifact和normal/fault evidence。
  5. 现代语法作为versioned update,不篡改原书Item位置与标题。

练习

问题 1:一个返回IQueryable的generic repository应从哪三章联合审计?

问题 2:如何证明一章不是“主题相近”而是忠实覆盖?

问题 3:一条建议的最小学习闭环是什么?

术语表

名词解释

本章出现的专业名词,用大白话再讲一遍。

official outline contract
type contract chain
lifetime contract chain
decision rehearsal
chapter evidence gate

讨论

评论区加载中…