C# / .NET 学习路线

这张路线适合谁

适合已经会用至少一门后端语言的人——会 Java 最顺(类型系统、泛型、异常都能直接映射),会 TS/Go/Python 也行,本文系列反复用你已会的概念对照。完全零基础的先别走这条:变量、循环、函数这些底子任何语言教程都能补。

版本现状:现在入坑学的是什么

学 C# 就是学 .NET,当前主线是 .NET 10(LTS,支持到 2028 年 11 月),语言版本 C# 14。.NET 每年 11 月发新版、偶数号是 LTS,这个节奏意味着:跟教程不必追新——钉住 LTS 线,教程差一两个版本不影响学。唯一要躲的坑是 .NET Framework 4.x 的老教程,那是不再演进的 Windows 专有实现,语法像但生态完全不同。

总览表

阶段 目标 阶段产出 预估时长(每天 1-2 小时)
一、环境与工具链 SDK、CLI、IDE 三件事就绪 新工程从零到 dotnet run 全绿 2-3 天
二、第一个应用 跑通入口、参数、发布 一个词频统计 CLI,单文件发布可分发 3-5 天
三、语法内核 六大件:属性/可空/LINQ/record/异步/DI 把 CLI 重构成多文件工程并加上单元测试 2-3 周
四、Web 服务实战 Minimal API + EF Core + 缓存 + 后台任务 可压测的短链服务,与 Go 版同场对比 1-2 周
五、进阶方向 选一条深水区路线 按方向定(见该节) 持续

阶段一:环境与工具链

学什么:.NET SDK 安装与版本现状(LTS/STS 节奏)、dotnet CLI 的十来个高频命令、.csproj/.sln/global.json 三者的分工、NuGet 依赖与 restore 机制、IDE 三选一(Rider / Visual Studio 2026 / VS Code + C# Dev Kit)。

用什么资源:《C# 与 .NET 环境搭建与工具链》一篇全覆盖,按它的检查清单验收。Java 背景对照《Java 环境搭建与工具链》读,SDKMAN 与 global.json 都是”锁版本”的答案。

阶段产出与验收:新目录里 dotnet new console → dotnet run → dotnet publish 三连全绿;dotnet –list-sdks 能看到 10.0 一行。

常见卡点:装完 dotnet 命令找不到(PATH 未刷新,重开终端);VS Code 里 F5 没反应(C# Dev Kit 需登录微软账号)。

阶段二:第一个应用

学什么:顶级语句与 Main 的关系(编译器替你写了入口)、args 解析、退出码约定、异步文件 IO、dotnet publish 的三种产物口径(框架依赖/自包含单文件/Native AOT)。

用什么资源:《第一个 C# 应用》,一个词频统计 CLI 从零到分发。Java 侧对照《第一个 Java 程序》——入口进化史两边互为镜像。

阶段产出与验收:CLI 能处理参数错误(退出码非零)、能统计任意文本文件、自包含单文件发布后在一台没装 .NET 的机器上跑通。

常见卡点:CS8805(顶级语句与显式 Main 共存,删一个);dotnet run — 后面的参数才传给程序。

阶段三:语法内核

学什么:属性与字段、可空引用类型(编译期防空的边界)、LINQ 方法语法与延迟执行、record 与模式匹配、async/await 与 Task(和 JS 的语义差异、.Result 死锁)、内建依赖注入的三档生命周期。

用什么资源:概念篇《C# 语法要点》逐个带 Java/TS 对照表;速查靠《C# 基础知识参考字典》(报错码那张表建议收藏)。record 的 Java 侧背景看《Java 类与 Record》。

阶段产出与验收:把阶段二的 CLI 拆成多个文件——参数解析、统计逻辑、输出格式各一类,用 xUnit 给统计逻辑补测试;全程 nullable 警告清零。

常见卡点:LINQ 查了两次(忘了延迟执行,ToList 固化);异步链里混进 .Result 卡死(全链路 async)。

阶段四:Web 服务实战

学什么:Minimal API 端点与 DI 组装、EF Core 建模与唯一索引、缓存三件套(穿透/击穿/雪崩)、Channel + BackgroundService 后台任务、wrk 压测与 P99 口径。

用什么资源:《用 ASP.NET Core 重写短链服务》——与站内 Go 版短链同题同指标,跨语言对照着读收益最大。Spring 背景再对照《Spring Boot 框架入门》,两者心智模型同构。

阶段产出与验收:短链服务本机跑通,curl 创建与 302 跳转全链路 OK;wrk 压缓存命中路径,能解释 P99 曲线的每一段。

常见卡点:唯一索引冲突重试忘了 ChangeTracker.Clear(重复追踪报错);BackgroundService 里直接用注入的 DbContext(没有请求作用域,要用 IServiceScopeFactory 自建)。

阶段五:进阶方向

实战之后别急着横向铺,选一条深水区:

方向 深入什么 先做出什么
Web 服务深化 EF Core 迁移与性能、认证授权(JWT/OIDC)、可观测性(OpenTelemetry)、配置与健康检查 给短链服务加用户体系与结构化日志
云原生与容器 容器镜像多阶段构建、Native AOT 的适用边界、性能诊断(dotnet-counters/dotnet-trace) 把短链服务容器化并做一次 CPU 火焰图
跨端与游戏 Unity(游戏,C# 是一等公民但运行时与版本由 Unity 锁定)或 MAUI(跨平台桌面/移动客户端) 各做一个小 demo 再决定投入

生态一句话分叉:Unity 与 MAUI 写的也是 C#,但那是另外的世界——Unity 用自家运行时与版本节奏,服务端学到的 ASP.NET Core 知识几乎不迁移;想写游戏随时可以去,但别当成服务端路线的一部分。

避坑清单

  • 不要拿 .NET Framework 4.x 的教程学——搜索结果里一半的老答案是它,判断特征:出现 web.config、ASP.NET MVC 5、System.Web;代价是学的 API 在 .NET 10 上根本不存在
  • 不要关掉 nullable 警告图清净——CS86xx 警告是编译期白送的防线,压制一次就少一类生产事故;边界数据另配运行时校验
  • 不要在异步代码里用 .Result/.Wait()——死锁或线程饥饿二选一;从入口到底层全链路 async 是纪律
  • 不要跳过 LINQ 直接手写循环然后嘲笑”语法糖”——LINQ 是 C# 生态的通用货币,第三方 API、EF Core 查询全是它的形状,不熟它读不了别人的代码
  • 不要一次学完整个 Microsoft.Extensions.* 全家桶——DI、配置、日志、选项、宿主逐个上,每个都能独立解释清楚再用下一个

学完之后

这条线走完,你已经具备用 C# 独立交付一个中小型 Web 服务的能力。下一步两条路:往深走(阶段五第一、二方向);往宽走(同一套后端思维换语言,本站其他语言路线任选)。C# 系列的完整索引:环境、第一个应用、语法、字典、实战五篇加本路线,从任何一篇进来都能串起来。

版本核实(以官方文档为准):.NET 10 为当前 LTS(支持至 2028-11),C# 14 随之发布;Visual Studio 2026 与 Rider、C# Dev Kit 的可用性见环境篇核实说明;.NET Framework 4.x 停止特性演进、不属于本路线。文中内链均为站内已发布或本系列已排期文章。具体以官方文档为准。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇