关于 C# Lab
一个每个示例都真的能运行的免费 C# 学习站——就在你的浏览器里,不在我们的服务器上。
有什么不同
大多数 C# 教程把代码放在截图里。在这里,每个示例都有运行按钮,由一个随页面分发的小型 C# 解释器(约 60 KB 的 JavaScript)驱动。没有后端:你的代码、你的输入、你的草稿,永远不会离开你的设备。
报错页更进一步——展示真实的编译诊断(error CS0029……),由与 Roslyn 编译器对教学子集相同的规则产生。你在这里练到的,和 Visual Studio 告诉你的是同一套东西。
引擎支持范围
刻意做成的教学核心:变量与核心类型(int、double、string、bool、char)、var;所有循环与 switch;方法(重载、默认参数、out 参数、递归);类、继承、接口、枚举、自动属性、静态成员;数组、List<T>、Dictionary<K,V>;try/catch/finally 与真实异常层级;Console、Math、Convert、常用字符串 API 与 $"…" 插值。
尚未支持(命中时站点会如实告诉你;以下在 Visual Studio 里都正常):LINQ、lambda、async/await、委托与事件、自定义泛型、多维数组、带方法体的属性、DateTime、StringBuilder。已知差异:引擎里的 struct 目前按引用语义处理(真实 C# 是值拷贝)。
安全护栏:死循环会被 500 万步看门狗拦下,而不是冻死你的标签页;输出上限 20 万字符;递归超过约 900 层会像真实运行时一样报栈溢出。
谁做的
一个喜欢"零基础设施网站"的独立开发者。没有追踪、没有账号、没有订阅弹窗。如果这个站对你有帮助,题库和报错解码器是全站最深的部分。
发现 bug 或者缺你想看的解释?发个反馈——有真人会读。