C # 有交互式解释器吗?

有时候,不用启动 VisualStudio 并创建新的控制台应用程序,就可以使用您的语言进行快速操作,这很方便。

除了 C # 之外,是否还有类似 Python 的交互模式或 Groovy shell 的东西?

33524 次浏览

Have a look at CsharpRepl (part of the Mono project). Never used it myself, I hasten to add.

For LINQ stuff, you should also look at LINQPad.

Here is a Mono CsharpRepl which is what you are looking for.

This documents the features available in the C# interactive shell that is part of Mono's C# compiler. An interactive shell is usually referred to as a read eval print loop or repl. The C# interactive shell is built on top of the Mono.CSharp (http:/monodoc/N:Mono.CSharp) library, a library that provides a C# compiler service that can be used to evaluate expressions and statements on-the-fly.

Like others noted, Mono's CSharpRepl is probably the right answer. However, if you're not fixed to C#, then PowerShell is a pretty nice environment of playing around with .NET. I frequently use it to test regular expressions, format strings, etc. All the kinds of stuff you have ConsoleProject163 lying around for :)

In addition to the other good answers here (+1), there is also CSI and the immediate window in Visual Studio.

You can use this developed by Miguel De Icaza, is shipped with mono and have code completion

Update for 2022

After installing Visual Studio 2022, add the following to your PATH environment variable.

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Packages\Microsoft.Net.Compilers.2.6.1\tools

Then open your terminal (CMD, PowerShell, Windows Terminal) and type csi to run C Sharp Interactive.

You'll get something like this:

PS C:\> csi
Microsoft (R) Visual C# Interactive Compiler version 2.6.1.62414
Copyright (C) Microsoft Corporation. All rights reserved.


Type "#help" for more information.
> var list = new List<int>{ 1, 2, 3, 4 };
> list // You don't need to call Console.WriteLine() to see values
List<int>(4) { 1, 2, 3, 4 }
> // You can keep adding lines as needed

Previous Answer

With the Visual Studio 2015 Update 1 there now is a C# Interactive tool window built into Visual Studio.

The new tool window is invoked by going to ViewOther WindowsC# Interactive.

For Visual Studio 2010 to 2013 you can use the Roslyn CTP to get a similar tool window in Visual Studio.

There is ScriptCS which uses the Roslyn CTP nuget package.

If you are looking for a simple web based environment to crank out some C# code try coderpad.io Not sure if you can add libraries n' all but its a quick and simple solution if you are just interested in testing out several commands

With Roslyn CTP there now is a full C# interactive window from Microsoft direct in Visual Studio!! Works great! So far runs all my libraries. After install: Invoking View -> Other Windows -> C# Interactive from the menu.

I use ideone.com sometimes, but LINQPad is a good choice if an install is acceptable.

I think CShell would be a nice contribution to answers given here. It provides code completion enabled REPL command window as well as a lightweight workspace management tools to include some scratch files and library references.