78

Sometimes it's handy to have access to your language to do quick things without starting Visual Studio and creating a new console app.

Is there something like Python's interactive mode or groovy shell, except for C#?

Seth
  • 45,033
  • 10
  • 85
  • 120

12 Answers12

112

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.

Daniel Rose
  • 17,233
  • 9
  • 65
  • 88
37

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.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
10

There are several.

  • 1
    Well, and the first couple of results are all about the same one ... – Joey Jan 13 '10 at 17:17
  • Looking at the first couple of results is usually not a good idea, no matter the search engine. You need to explore the first page or two, perhaps even three, if you are feeling ambitious. This, in addition to trying different search terms really helps broaden your search. –  Jan 13 '10 at 17:35
  • CSI doesn't seem to support the latestfeatures of the language. I found a tip here: http://www.codeproject.com/Messages/2635407/Update-for-NET-Framework-3-5.aspx that was supposed to fix this, but I was unable to get that version working properly. – Casebash Feb 17 '10 at 05:58
9

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 :)

Joey
  • 344,408
  • 85
  • 689
  • 683
7

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

Craig Stuntz
  • 125,891
  • 12
  • 252
  • 273
4

There is ScriptCS which uses the Roslyn CTP nuget package.

hemme
  • 1,654
  • 1
  • 15
  • 22
Tim
  • 7,746
  • 3
  • 49
  • 83
  • 3
    ScriptCs now has interactive shell too - http://codebetter.com/glennblock/2013/05/07/scriptcs-gets-a-repl/ – Filip W May 11 '13 at 15:51
4

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.

Michael Buen
  • 38,643
  • 9
  • 94
  • 118
David Basarab
  • 72,212
  • 42
  • 129
  • 156
3

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.

Paul
  • 31
  • 1
2

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.

Gregor
  • 358
  • 2
  • 7
1

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

Ian Newson
  • 7,679
  • 2
  • 47
  • 80
  • +1 for reminding me of LINQPad, I have it installed but I rarely use it nowadays. It is not an interactive shell as such but amost. It is so quick to bash down one or more lines and see the output. It is great to get the syntax right with regular expressions for example. (LINQPad can be used for much more than that!) – Giuseppe Romagnuolo Feb 10 '16 at 16:19
0

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

Pinky
  • 665
  • 2
  • 7
  • 17
0

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

Kristian Damian
  • 1,360
  • 3
  • 22
  • 43