C# REPL вне Visual Studio

F# имеет цикл REPL (read–eval–print) F# Interactive,C:Program Files (x86)Microsoft F#v4.0Fsi.exe.

Я понимаю, что C# теперь имеет свой собственный интерактивный REPL, выпущенный с Рослин. Как открыть вне Visual Studio? Где csi.exe?

6 ответов


C# Interactive и csi.exe REPL были добавлены в Обновление Visual Studio 2015 1 (выделено мной):

Представляем Interactive

интерактивное окно возвращается! Интерактивное окно C# возвращается в Visual Studio 2015 Update 1 вместе с несколькими другими интерактивными обработками:

  • C# Interactive. Интерактивное окно C# по существу является read-eval-print-loop (REPL), который позволяет вам играть и исследовать с технологиями .NET, используя такие функции редактора, как IntelliSense, синтаксис-раскраска и т. д. Узнайте больше об использовании C# Interactive на канале 9 или прочтите пошаговое руководство для начинающих.

  • csi. Если вы не хотите открывать Visual Studio для воспроизведения с C# или запускать файл сценария, вы можете получить доступ к интерактивному движку из команды разработчика Быстрый. Тип csi /path/myScript.csx для выполнения файла сценария или введите просто csi чтобы попасть внутрь командной строки REPL.

  • API Сценариев. API сценариев дают возможность выполнять фрагменты кода C# в среде выполнения, созданной хостом. Вы можете узнать больше о том, как создать свой собственный движок скриптов C#, проверив наши образцы кода.

посмотреть что нового в Visual Studio 2015 обновление 1 для управляемых языков .NET.


https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx

>csi
Microsoft (R) Visual C# Interactive Compiler version 1.1.0.51109
Copyright (C) Microsoft Corporation. All rights reserved.

Type "#help" for more information.
> #help
Keyboard shortcuts:
  Enter         If the current submission appears to be complete, evaluate it.  Otherwise, insert a new line.
  Escape        Clear the current submission.
  UpArrow       Replace the current submission with a previous submission.
  DownArrow     Replace the current submission with a subsequent submission (after having previously navigated backwards).
REPL commands:
  #help         Display help on available commands and key bindings.
Script directives:
  #r            Add a metadata reference to specified assembly and all its dependencies, e.g. #r "myLib.dll".
  #load         Load specified script file and execute it, e.g. #load "myScript.csx".
>
> Enumerable.Range(10)
(1,12): error CS7036: There is no argument given that corresponds to the required formal parameter 'count' of 'Enumerable.Range(int, int)'
> Enumerable.Range(1, 10)
RangeIterator { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

Я создал именно то, что вы просите, на основе Roslyn REPL работает вне VisualStudio.

вы можете скачать его с PoC-Roslyn C# ScriptEngine выполнить v1.0.exe который является автономным exe, содержащим все сборки Roslyn в качестве встроенных ресурсов. См. также видео: Использование среды сценариев на основе O2 Roslyn C# REPL

обратите внимание, что я разработал более мощный C# REPL для Платформа O2, который вы можете увидеть и скачать с среда сценариев C# REPL

на тему Рослин, вот несколько другие автономные инструменты что я создал:

обратите внимание, что все эти инструменты и платформа O2 выпущены под лицензией с открытым исходным кодом, поэтому, пожалуйста, не стесняйтесь расширять и улучшать их:)


единственный исполняемый файл, который я нашел, это C:\Program Files (x86)\Microsoft Codename Roslyn CTP\Binaries\rcsi.exe, которые могут выполнить .csx файлы. Но он, похоже, на самом деле не поддерживает REPL.


Как насчет скриптов:http://scriptcs.net/?

есть REPL, и вы даже получаете силу NuGet.


Это не может быть заменой, но я в основном использую RoslynPad для быстрого исследования и тестирования. Я также использовал Linqpad. RoslynPad - "простой редактор C#, основанный на Roslyn", согласно их веб-сайту https://roslynpad.net/. Вы можете писать небольшие скрипты и видеть значения переменных, а также сохранять их.


Anders Hejlsberg строит цикл C# REPL в этом видео, 65 минут в:

http://channel9.msdn.com/Events/PDC/PDC08/TL16#time=65m00s

Это гораздо более старая версия Roslyn, но те же идеи применяются (и eval! ;).