Effective C# 第3版学习地图:5章50条
按Addison-Wesley第3版权威目录组织5章50条,建立语言、资源、泛型、LINQ和异常的学习路径、横向contract链与验收门禁。
学习目标
- 能描述第3版5个原章与50条Item的范围,判断任一实践问题应进入哪个章节审计
- 能绘制type、lifetime、execution和failure四条跨章contract chain,解释章节间依赖
- 能设计目录、决策、视觉、实践和版本边界五道学习门禁,复现每章通过证据
机制总览
五章五十条建议如何汇成四条契约链
- 1
类型契约
语言习惯和泛型共同限定调用方能表达什么。
- 2
生命周期契约
资源章节确定对象从创建到释放的唯一责任人。
- 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是否算掌握?三个答案都是否。
↡以出版社第3版目录中的5章、50个Item title、版本和ISBN作为课程覆盖的唯一结构基准。五章纵向路线:从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共同保证可清理、可诊断、可恢复。
切换5个官方章节与Item范围
Language -> Resource -> Generic -> LINQ -> Exception
syntax lifetime type execution failure
choice owner relation boundary guarantee四条横向Contract Chain
纵向顺序确保完整覆盖,横向复盘把分散建议连成真实工程链。
- Type chain:typed API与dispatch,经generic constraint/variance,到LINQ delegate/expression binding。
- Lifetime chain:delegate/event retention、resource ownership、disposable T、iterator/resource capture与finally cleanup。
- Execution chain:callback invocation、generic specialization、query enumeration、provider terminal与filter search。
- Failure chain:cast/format failure、partial construction、callback/query exception、strong guarantee与handler policy。
切换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验收。现代补充必须标出版本,不覆盖原书历史位置。
↡把建议落到真实boundary,写出alternatives、chosen contract、owner与可观察acceptance,而非背诵结论。 ↡通过正常、边界、fault、compatibility与version cases证明建议在目标runtime中成立的证据集合。切换目录、决策、视觉、实践与版本门禁
read Item title -> state a decision -> predict -> interact -> run evidence -> review fault -> pass gate本章回顾:完整、分层、可复现
- 课程只对应第3版、C# 6.0、5章50条出版社目录。
- 纵向按语言、资源、泛型、LINQ、异常推进,前一章为后一章提供contract vocabulary。
- 横向以type、lifetime、execution和failure复盘真实系统。
- 每章交付专属视觉、decision artifact和normal/fault evidence。
- 现代语法作为versioned update,不篡改原书Item位置与标题。
练习
问题 1:一个返回IQueryable的generic repository应从哪三章联合审计?
问题 2:如何证明一章不是“主题相近”而是忠实覆盖?
问题 3:一条建议的最小学习闭环是什么?
术语表
名词解释
本章出现的专业名词,用大白话再讲一遍。
- official outline contract
- type contract chain
- lifetime contract chain
- decision rehearsal
- chapter evidence gate