Tech

Ctrl + E, E – the best Visual Studio shortcut I’ve seen so far!

I can’t be the only person who hates waiting for the code to compile and run… Especially when I want to test only a small part of it! That’s a total waste of time! But good news everyone, I found a way to run a part of my C# code without building the whole project!

Ctrl + E, E – the magical shortcut!

Ok, so if we want to run just the fragment of our code – this is what we do:
1.    Select the fragment of code we want to run. This has to be a fully compilable fragment so make sure that if you copy the code to the separate project, it would compile. Depending on the Visual Studio version, we need to type only class names or the class names with namespaces.
2.    Press Ctrl + E, E and wait for the magic to happen!

We will see the ‘C# interactive’ pane activate in the bottom of the Visual Studio window.

What is going on here? Well, the Roslyn (known as a ‘Compiler as A Service’) takes your C# code and runs it! Amazing, isn’t it?

Show me something usefull!

Ooook, why don’t we create a text file? Let’s write the following C# code:

And let’s test the lines that create the file so we select the below lines and press Ctrl + E, E.

Now we check the c: drive. Yep, the file bambam.txt is there!

 

Ok, but what if I want to run the code that requires some assembly?

Not a problem, we just use #r directive! For example, for our custom assembly, we just type the following code in the C# Interactive tab :

That’s even easier when we want to use a .net library:

Example needed? Here we go! Let’s assume I have a class library  ‘Helpers‘ with a class ‘Cast‘ and a method ‘StringToInt()’ . And we want to run this method in another project, without compiling anything. Without the ‘#r…’ directive we will receive the following error:

To get rid of this error, we have to:

  1. In ‘C# Interactive‘ pane type #r directive with the absolute path to the library. And press enter, of course :).
  2. Select the code we want to run and press Ctrl + E + E.

We will see the result now! Wow, it works! 😉

 

We also can reference the used assembly just in the middle of our code! Like in the following example:

 

Yep, this time Roslyn also did everything for us and returned the number “6” (which is a sum of even numbers in the list myList) as a result in the Console.

Featured image by Andy Mai

Share this:

  • Pingback: dotnetomaniak.pl()

  • Ekstra! Przyznam, że nie wiedziałam o tym skrócie:) Dzięki!!

  • Paweł Borawski

    Ciekawy skrót. Osobiście, wolę jednak załadować cały projekt do C# Interactive a potem w nim wywoływać metody etc. Aczkolwiek najlepszy do tego typu zadań wg. mnie jest LinqPad.

    • LinqPad wygląda interesująco… Muszę się tym trochę pobawić, bo przyznam, że nie używałam do tej pory. Dzięki za info!

  • Adrian Bystrek

    Dobre 🙂

  • Czy mogę używać tylko standardowych bibliotek C#?

    • Nie, nie, można używać dowolnej biblioteki, także własnej!

      Zaktualizowałam post o przykład (zaczyna się od tekstu “Example needed? Here we go!”).

      • O takie coś mi właśnie chodziło 🙂 Próbowałem tak, ale myślałem, że sam sobie poradzi ze ścieżką. Nie próbowałem całej ścieżki wpisać.

  • Michał

    A skrót IntelliJ IDEA/
    ReSharper 2.x jaki jest do tego?

  • Aby załadować dll z solucji do c# interactive można w menu kontekstowym wybrać opcje “Initialize Interactive with Project”. IDE automatycznie wywoła wszystkie potrzebne polecenia # r “nazwa.dll” i wykona using dla głównego namespace tej biblioteki 🙂

  • Pingback: How to run C# code without building the whole project - VS shortcut - How to Code .NET()