在我们日常的开发工作里,总有这样的瞬间:脑海里突然闪过一段逻辑——一个算法边界、一段 LINQ 过滤、一个字符串处理的正则——你很想立刻验证它“对不对”。
通常的做法是:打开 IDE → 新建项目 → 建控制台程序 → 写 Main → 套一层 class → 按 F5。等这一套流程走完,那股“想验证”的劲头早凉了。
这个时候,是不是特别羡慕 Python?python -c "..." 或者开个 REPL,三秒钟就能看到结果。
好消息是:.NET 早就能这么玩了。本文就介绍两种轻量、开箱即用的 .NET 脚本式开发环境,助你把脑海里的念头,秒变可运行的代码。
如果说 Python 的爽点在于“打开就能写、写完就能跑”,那 RoslynPad 就是 .NET 世界里的那个“记事本 Plus”。
RoslynPad 是一款开源、免费、跨平台的轻量级 C# 编辑器,基于 Roslyn 编译器构建。它把“写一段代码 → 立刻看结果”做到了极致:
Main、无需 classusing 第三方库做验证;笔者本机就是直接放的便携版( D:\Soft\RoslynPad-windows-x64\RoslynPad.exe,x64 自包含,解压即用,不需要安装 .NET 运行时),双击就能开。
1. 打开 RoslynPad,新建一个 Document;2. 直接把想验证的代码贴进去(RoslynPad 默认已引入 System、System.Linq、System.Collections.Generic 等常用命名空间);3. 按 F5(或工具栏“执行”)——下方输出窗口立刻显示结果。
比如你想验证“一组订单里,金额大于 100 的按金额倒序输出”这个逻辑:
// 在 RoslynPad 里直接写,不用包 Main / classvar orders = new[]{ new { Id = 1, Amount = 120, Region = "华东" }, new { Id = 2, Amount = 80, Region = "华南" }, new { Id = 3, Amount = 200, Region = "华东" }, new { Id = 4, Amount = 150, Region = "华北" },};var result = orders .Where(o => o.Amount > 100) .OrderByDescending(o => o.Amount) .Select(o => $"订单{o.Id} | {o.Region} | ¥{o.Amount}");foreach (var line in result) Console.WriteLine(line);按 F5,输出窗口立刻出现:
订单3 | 华东 | ¥200订单4 | 华北 | ¥150订单1 | 华东 | ¥120从“想到”到“看到”,不到十秒。
想验证一个算法?直接引用 MathNet.Numerics 之类的包:在 RoslynPad 里通过菜单添加 NuGet 引用,然后 using 即可,完全不用建工程、改 .csproj。这正是它“像 Python 一样随手 import”的爽感来源。

图:笔者demo
如果你连第三方软件都不想装,从 .NET 10 开始,SDK 本身就给了你“脚本式”体验。
dotnet run file.cs过去跑一段 C# 至少要一个 .csproj。.NET 10 起,你可以写一个纯 .cs 文件,直接 dotnet run 它——没有项目文件、没有 obj/bin 噪音。
把下面内容存成 demo.cs:
// demo.cs —— 注意:无需任何 .csprojusing System;using System.Linq;int Fib(int n) => n <= 1 ? n : Fib(n - 1) + Fib(n - 2);var seq = Enumerable.Range(1, 10).Select(Fib);Console.WriteLine("Fib(1..10) = " + string.Join(", ", seq));然后在终端执行(已实测通过 ✅):
dotnet run demo.cs# 输出:Fib(1..10) = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55是不是有点 python demo.py 的味道了?一个文件、一条命令、零样板代码。
想要更像 Python 交互式的体验?.NET 还有 C# Interactive(csi) 这个 REPL:
dotnet-script(CSX 文件):# 一次性安装(全局工具)dotnet tool install -g dotnet-script# 然后直接跑脚本文件dotnet script demo.csx在 REPL 里你可以这么玩:
> var s = "Hello, .NET";> s.Reverse().ToArray()char[10] { '.', 'T', 'E', 'D', '.', ' ', 'o', 'l', 'l', 'e', 'H' }> 2 + 24聊 C# 便签工具,绕不开 LINQPad——它算是这类工具的“鼻祖”,生态成熟、用户基数大,最强项在于:直接连数据库写 LINQ 查询、富文本/表格输出,以及付费版的智能提示与调试能力。
但要注意它的授权模式:LINQPad 有免费版,但免费版不包含 IntelliSense 智能提示(这是付费 Pro 及以上才有的能力),想要完整体验需要购买授权。
所以对本文“随手验证一段逻辑”的目标而言,免费且开源的 RoslynPad 基本就够用了——该有的智能提示、NuGet 引用、REPL 它都有。只有当你的需求超出了“验证逻辑”,比如要频繁连库做 LINQ 查询、要富输出/调试等专业场景,再考虑上 LINQPad 的付费版也不迟。
dotnet SDK(10+) | |||
dotnet run file.cs | |||
#r/全局工具 | |||
一句话总结:想“写得爽、看得清”,用 RoslynPad;想“不装东西、终端里秒跑”,用 .NET 10 单文件运行 + C# Interactive;一般需求 RoslynPad 已经足够,只有特殊专业场景才需要付费的 LINQPad。
C# 从来不是“笨重”的代名词。借助 RoslynPad 和 .NET 10 的原生脚本能力,我们完全可以在不新建项目、不写 Main 的前提下,把脑海里一闪而过的逻辑立刻跑起来验证——手感直追 Python。
下次再冒出“这段代码对不对”的念头时,别急着开 IDE 建工程了。打开 RoslynPad 敲两行,或者 dotnet run 一个 .cs 文件,十秒后你已经在看结果了。
动手试试:把你今天最想验证的那段逻辑,用上面的任一方式跑一遍。欢迎在评论区贴出你的“即兴代码” 👇
工具速查RoslynPad:https://github.com/roslynpad/roslynpad (开源免费)单文件运行:dotnet run 你的文件.cs(需 .NET 10+)C# 交互:dotnet tool install -g dotnet-script → dotnet script xxx.csx