2026-09-18 · AI 辅助编程 · 阅读约 7 分钟

用 AI 辅助学习 .NET / C# 的一些心得

最近一年,我学 C# 的方式发生了很大变化:遇到不懂的概念,第一反应不再是翻教程,而是先问 AI。用了大半年,确实感受到它把学习曲线拉平了很多,但也不是没有坑。这篇笔记把 AI 在 .NET 学习上实际帮到我的地方、以及它不靠谱的时候都整理一下。

一、AI 真正帮上忙的几个场景

1. 解释抽象概念。比如刚学依赖注入的时候,我一直不理解"为什么要把对象交给容器管理"。让 AI 用生活化的例子解释了一遍,再让它对比"手写 new"和"注入"的区别,一下就通了。AI 特别适合这种"你说不出具体哪里不懂,但就是绕不过来"的概念。

2. 写示例代码。想学一个新 API,比如 Span<T>、IAsyncEnumerable,直接让 AI 给一个最小可运行示例,比自己在搜索引擎里翻一堆博客快得多。而且它会自动带上 using 和 Main 入口,复制就能跑。

3. 排查报错。编译器报错信息又长又难懂的时候,把整段错误贴给 AI,它通常能指出真正的问题。比如 EF Core 迁移报错,经常是 Design 包没装,AI 一眼就能看出来。

二、AI 给出的 C# 代码示例

比如我问它"怎么用 BackgroundService 写一个定时任务",它给出的示例:

public class TimedHostedService : BackgroundService
{
    private readonly ILogger<TimedHostedService> _logger;

    public TimedHostedService(ILogger<TimedHostedService> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        using var timer = new PeriodicTimer(TimeSpan.FromSeconds(30));
        while (await timer.WaitForNextTickAsync(stoppingToken))
        {
            _logger.LogInformation("定时任务执行于: {time}", DateTimeOffset.Now);
        }
    }
}

这段代码基本能直接用,比我自己翻文档快多了。但我还是去翻了官方文档确认 PeriodicTimer 是 .NET 6 之后才有的,避免它给我过时写法。

三、要警惕的几个坑

四、我的使用方式

现在我一般是这样:先自己写,卡住了把问题描述清楚丢给 AI,让它解释而不是直接给最终代码;它给的示例我会改一改再用,并且跑一遍确认;遇到新概念,让它从"是什么、为什么、什么时候用、踩什么坑"四个角度讲一遍。这样下来,学习效率比以前纯靠搜索引擎高很多,但基础概念还是得靠自己理解。

总结一句:AI 是个很好的"24 小时不烦人的家教",但它不能替你消化知识。把它当老师,不要当代写。