我想知道是否有类似 Visual Studios“即时窗口”的独立版本?有时我只是想测试一些简单的东西,比如“DateTime.Parse(“blah”)”,看看它是否有效。但是每次我必须创建一个新的控制台应用程序时,输入我的代码并对其进行测试。
遗憾的是,即时窗口仅在我调试某些东西时才有效。PowerShell 能做到这一点吗?只需打开一个类似于 cmd.exe 的 CLI,允许我执行一些 C# 代码?
我想知道是否有类似 Visual Studios“即时窗口”的独立版本?有时我只是想测试一些简单的东西,比如“DateTime.Parse(“blah”)”,看看它是否有效。但是每次我必须创建一个新的控制台应用程序时,输入我的代码并对其进行测试。
遗憾的是,即时窗口仅在我调试某些东西时才有效。PowerShell 能做到这一点吗?只需打开一个类似于 cmd.exe 的 CLI,允许我执行一些 C# 代码?
Linqpad - 我一直都这样使用它。 http://www.linqpad.net/
不要被这个名字误导——它只是描述了它的原始动机,而不是它的功能。
就在最近,他发布了一个具有正确语句完成功能的版本——这是一个收费的附加组件(核心工具是免费的),但我认为只需少量的钱,而且非常值得。
Mono 项目包含一个交互式 C# shell,这可能正是您正在寻找的。
C# 交互式窗口和csi.exe REPL 已添加到Visual Studio 2015 Update 1:
介绍互动
交互式窗口又回来了!C# 交互窗口在 Visual Studio 2015 更新 1 中返回,同时还提供了一些其他交互功能:
C# 交互式. C# 交互式窗口本质上是一个读取-评估-打印-循环 (REPL),它允许您使用 .NET 技术进行游戏和探索,同时利用 IntelliSense、语法着色等编辑器功能。了解有关如何使用 C# 的更多信息在第 9 频道进行互动或阅读我们的初学者演练。
CSI _ 如果您不想打开 Visual Studio 来玩弄 C# 或运行脚本文件,可以从开发人员命令提示符访问交互式引擎。键入
csi /path/myScript.csx
以执行脚本文件,或仅键入csi
以放入命令行 REPL。脚本 API。脚本 API 使您能够在主机创建的执行环境中执行 C# 代码片段。通过查看我们的代码示例,您可以了解有关如何创建自己的 C# 脚本引擎的更多信息。
请参阅.NET 托管语言的 Visual Studio Update 1 中的新增功能。
基本上,现在你有:
csi foo.csx
来自 Dev Cmd Promptcsi
来自 Dev Cmd Prompt试试scriptcs,它没有集成到 VS IDE 中,但它确实允许您在脚本窗口中键入和运行 C#,而无需项目编译器等...
正如你所建议的,PowerShell 可以做你想做的事。例如,要测试你的 DateTime.Parse,下面的一个衬里就可以了:
PS C:\Documents and Settings\Dan> [System.DateTime]::Parse("Blah")
使用“1”参数调用“Parse”的异常:“字符串未被识别为有效的 DateTime。有从索引 0 开始的未知单词。” 在 line:1 char:25 + [System.DateTime]::Parse(<<<< "Blah")
PS C:\Documents and Settings\Dan> [System.DateTime]::Parse("1/2/3")
2003 年 2 月 1 日 00:00:00
请注意,以上使用的是当前版本的 PowerShell (v1.0)。PowerShell 的下一个版本将允许您更直接地将 C# 与 PowerShell 脚本混合。为了激发您的胃口,请观看Doug Finke的 7 分钟截屏视频“ C# 到 PowerShell ” 。非常令人印象深刻!
按照 lassevk 的回答,我得到了"Snippy"。这是为 C# in Depth 开发的,UI 很垃圾,但它可以工作 - 并且还允许您编写额外的成员(方法、嵌套类等),例如
public static void Foo()
{
Console.WriteLine("Hello");
}
...
Foo();
(... 用于告诉 Snippy “这里的所有内容都属于 Main”。)
我们刚刚发布了CShell一个功能齐全的 C# REPL IDE。它支持代码完成、脚本文件、添加引用,并且是真正可扩展的。此外,我们计划很快添加 NuGet 支持,这将使编写一些代码并查看它是如何工作的变得超级快。
我们喜欢 LINQPad,但它没有 REPL,代码只执行一次,除非您修改脚本并再次运行整个脚本,否则您无法对结果进行任何进一步的处理。这很好,但有时如果你想要更多的脚本感觉,那么在 REPL 中评估你的代码真的很好也很方便。
我还发现SharpDevelop非常快速和轻量级,它是快速启动测试项目的最简单方法。
您可能会发现 Object Test Bench 很有用。它不是很为人所知,但可以让您创建类的实例、执行静态方法等等。它对于发现如何使用不熟悉的 API 或快速调试您自己的类和方法很有用,无需创建测试工具以进行简单检查。
您可以在此处找到 MSDN 文档:
http://msdn.microsoft.com/en-us/library/c3775d98%28VS.80%29.aspx
如果你能等一会儿.. 看起来可能有一个 C# 相当于 Ruby 的 irb 及时用于 C# 4.0 Anders H. 演示了一个交互式控制台会话,您可以在其中键入任意 C# 代码并在他的“ C#的未来”中查看结果' 在 PDC 2008 上发表的文章。您甚至可以从中弹出一个 WPF 窗口,然后通过控制台界面使用它。很酷。
尝试作为O2 平台一部分的C# REPL 脚本环境。这正是您所要求的。
它将为您提供一个完美的环境来尝试所有 C# 功能和 API(从概念上讲,O2 REPL 环境类似于 LinqPAD)
您还应该看看 Microsoft 的 Roslyn。在多个基于 Roslyn 的工具上(均在 VisualStudio 之外独立运行),第一个是简单的 Roslyn REPL
如果您碰巧知道并喜欢 Python,那么IronPython可能是一个不错的选择。它带有一个 (Python) REPL 控制台 (ipy.exe),您可以在其中导入和使用所有 .Net 类型。
我发现它对于测试小东西很有用,就像DateTime.Parse("Blah")
.
请注意,它实际上不能执行 C# 代码,但如果您只想访问 .Net,那么它是完美的。此外,如果您安装了IronPython Tools for VS,您可以使用单个键盘快捷键 (Alt+I) 在 VS 中启动 REPL 会话,并在需要时让它在停靠窗口中运行。
更新:http ://avillenas.com/post/interactive-c
嗯,你可以试试这个。
我做了你想做的事。点击这里查看 gif
Roslyn 项目源包含一个名为 CSI ( http://sourceroslyn.io/#csi/Csi.cs ) 的 REPL。Csi 类目前是内部的,但是对于“csi”项目 (Roslyn.sln: Interactive/Hosts/csi) 有一个可执行的控制台应用程序可用,它支持例如命令 #r 加载程序集和 #load 加载和执行脚本文件(启动 csi 并使用#help)。