C#
C# 完整学习路线
面向已有编程基础读者的 C# 14 与 .NET 10 完整路线,以 StudyTasks 命令行任务管理器贯穿语言、基础类库与工程实践。
发布于 2026年7月23日
C# 完整学习路线
这是一套面向已有编程基础读者的 C# 学习笔记。主线环境采用 C# 14、.NET SDK 10.0.302 与 .NET 10.0.10 LTS,并通过同一个 StudyTasks 命令行任务管理器,把语言特性、基础类库和工程实践连接成一个可以构建、测试、打包和发布的项目。
你不需要重新学习“什么是变量或循环”。本系列更关注静态类型、值与引用语义、可空性、资源所有权、LINQ 的惰性、异步取消,以及怎样把一个控制台程序逐步整理成边界清晰、可维护的软件。
一、学习目标
- 确认本系列的 SDK、语言版本、目标框架与跨平台边界
- 理解 18 篇笔记如何围绕同一个项目逐步推进
- 建立每个阶段都能构建、测试和复盘的学习节奏
- 明确完成系列后应具备的独立交付能力
二、环境基线
- 语言版本:C# 14
- SDK:.NET SDK 10.0.302
- 运行时:.NET 10.0.10 LTS
- 目标框架:
net10.0 - 支持系统:Windows PowerShell、Linux、macOS
- 解决方案格式:
StudyTasks.slnx - 质量工具:编译器分析器、
dotnet format、xUnit v3 - 示例命令:
study-tasks
先确认环境:
dotnet --version
dotnet --info
dotnet --list-sdks
dotnet --list-runtimes
dotnet --version 显示当前目录实际选中的 SDK,而不是机器上“最新安装”的 SDK。存在 global.json 时,SDK 选择还会受到版本和回滚策略影响。
本系列只使用正式发布的 C# 14 与 .NET 10 API。不要把 .NET 11 Preview 示例复制到
net10.0项目后再依赖偶然的本机环境。
三、课程目录
| 阶段 | 文档 | 完成后能做什么 |
|---|---|---|
| 建立基线 | 1-环境、SDK 与项目基线 | 创建解决方案并理解 SDK、运行时和目标框架 |
| 类型模型 | 2-语法、类型系统与内存语义 | 判断值复制、引用共享、装箱与可空值 |
| 数据组织 | 3-集合、泛型与常用数据结构 | 按业务语义选择集合并设计泛型约束 |
| 行为组织 | 4-控制流、方法与参数设计 | 编写契约清晰、易测试的方法 |
| 项目拆分 | 5-项目、程序集、命名空间与依赖 | 建立项目引用和单向依赖 |
| 对象建模 | 6-类、接口、记录与对象建模 | 用类、接口与记录保护领域不变量 |
| 可靠性 | 7-可空引用、异常与资源安全 | 明确失败语义并可靠释放资源 |
| 行为组合 | 8-委托、事件、Lambda 与扩展成员 | 组合回调、通知与扩展 API |
| 查询管道 | 9-LINQ、迭代器与惰性查询 | 构建可控的惰性数据转换 |
| 基础类库 | 10-文件、JSON、正则与时间 | 安全处理路径、文本、结构化数据和时间 |
| 应用入口 | 11-命令行、配置、依赖注入与日志 | 组装可配置、可诊断的 CLI |
| 数据持久化 | 12-SQLite、事务与数据访问 | 使用参数、约束和事务实现仓储 |
| 网络边界 | 13-HTTP、JSON 与 API 客户端 | 编写带超时、取消和验证的客户端 |
| 并发 | 14-异步、并发与取消 | 正确传播异步、取消和并发错误 |
| 质量保障 | 15-测试、调试与代码质量 | 建立自动化质量反馈 |
| 交付 | 16-NuGet、发布与部署 | 打包工具并生成可部署产物 |
| 综合实践 | 17-综合实战与进阶路线 | 独立完成可维护的 .NET CLI 项目 |
四、贯穿项目
项目名是 StudyTasks,安装后的命令是 study-tasks。能力按课程逐步增长:
- 在内存集合中新增、筛选和完成任务。
- 用
record、枚举和接口表达任务与仓储。 - 通过 JSON 导入导出,再迁移到 SQLite。
- 加入
add、list、done、delete与sync子命令。 - 用 Generic Host 统一配置、依赖注入、日志和生命周期。
- 用
HttpClient同步远端任务,并传播超时和取消。 - 为领域和基础设施补测试,通过分析器与格式检查。
- 构建 NuGet Tool 与跨平台发布产物。
最终结构:
StudyTasks/
StudyTasks.slnx
Directory.Build.props
src/
StudyTasks.Core/
StudyTasks.Infrastructure/
StudyTasks.Cli/
tests/
StudyTasks.Tests/
依赖始终由 Cli 和 Infrastructure 指向 Core;Core 不引用数据库、HTTP、日志或命令行框架。入口项目负责组装,基础设施项目负责外部 I/O。
五、推荐学习方法
每篇都按“读目标 → 手写示例 → 制造失败 → 完成练习 → 重跑构建和测试”的节奏实践。警告应查清原因,不用 ! 掩盖;异步失败还要确认 CancellationToken 是否传到了最底层 I/O。
六、阶段完成标准
- 第 1~5 篇:解释类型、参数、SDK、项目和程序集边界。
- 第 6~10 篇:用对象模型、异常、LINQ 和基础类库实现可靠领域。
- 第 11~16 篇:组装 CLI、SQLite、HTTP、异步、测试与发布流程。
- 第 17 篇:在干净环境完成构建、安装、冒烟和回滚准备。
七、常用命令速查
dotnet --info
dotnet restore
dotnet build --no-restore --warnaserror
dotnet test --no-build
dotnet format --verify-no-changes
dotnet pack -c Release
dotnet publish src/StudyTasks.Cli -c Release
八、常见错误
- 只看语法而不运行贯穿项目,导致知识点彼此割裂
- 用机器上最新 SDK 代替
global.json约定的 SDK - 为消除警告滥用
!,掩盖真实的空值与所有权问题 - 一开始就加入 UI 或 Web 框架,模糊本系列的 CLI 工程边界
九、练习与自测
- 用自己的话解释 SDK、Runtime、C# 版本和目标框架的关系。
- 画出四个项目的引用方向,并说明 Core 为什么不引用 Infrastructure。
- 为每个学习阶段写出一个可运行、可验证的完成标准。
十、官方资料
第三方文章、旧版 Visual Studio 模板和当前 SDK 行为不一致时,以目标版本官方文档、项目文件与实际编译结果为准。
下一篇:环境、SDK 与项目基线