Консоль C # / Интерпретатор CLI? - PullRequest
29 голосов
/ 03 декабря 2008

Интересно, есть ли что-то вроде автономной версии Visual Studios "Немедленное окно"? Иногда я просто хочу протестировать некоторые простые вещи, такие как «DateTime.Parse (« бла »), чтобы увидеть, работает ли это. Но каждый раз мне приходится создавать новое консольное приложение, вставлять свой код и тестировать его.

Immediate Window, к сожалению, работает только тогда, когда я что-то отлаживаю. Может ли PowerShell сделать это? Просто откройте CLI, похожий на то, что делает cmd.exe, позволяя мне выполнить код C #?

Ответы [ 17 ]

33 голосов
/ 03 декабря 2008

Linqpad - я все время так использую. http://www.linqpad.net/

Не вводите в заблуждение название - оно просто описывает первоначальную мотивацию, а не его функциональность.

Совсем недавно он выпустил версию с правильным заполнением выписок - это платное дополнение (основной инструмент бесплатный), но, думаю, за небольшую сумму денег оно того стоит.

12 голосов
/ 03 декабря 2008

Проект Mono включает в себя интерактивную оболочку C #, это может быть именно то, что вы ищете.

http://www.mono -project.com / CsharpRepl

11 голосов
/ 02 декабря 2015

C # Интерактивное окно и csi.exe REPL были добавлены в Visual Studio 2015 Update 1 :

Представляем Интерактив

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

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

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

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

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

По сути, теперь у вас есть:

  • IDE REPL - C # Интерактивное окно в VS
  • Интерпретатор сценариев - csi foo.csx из командной строки Dev Cmd
  • Командная строка REPL - csi из командной строки Dev Cmd
  • API сценариев
9 голосов
/ 06 июня 2013

Попробуйте scriptcs , он не интегрирован в VS IDE, но позволяет набирать и запускать C # в окне сценариев без необходимости в компиляторе проекта и т. Д ...

8 голосов
/ 03 декабря 2008

Ну, это не прямой ответ на ваш вопрос, но вы можете посмотреть на этот инструмент:

Кроме того, если вы хотите увидеть произведенный IL или аналогичный, есть инструмент, который подключается к Reflector , называемый Snippy , основанный на инструменте Snippy, который упоминает Джон его собственный ответ дальше вниз.

Все это очень удобно для использования.

7 голосов
/ 03 декабря 2008

Как вы предлагаете, PowerShell может делать то, что вы хотите. Например, чтобы проверить ваш DateTime.Parse, следующий трюк сделает свое дело:

PS C: \ Documents and Settings \ Dan> [System.DateTime] :: Parse ("Blah")
Исключение, вызывающее «Parse» с аргументом (ами) «1»: «Строка не была распознана как допустимый DateTime. слово начинается с индекса 0. " В строке: 1 символ: 25 + [System.DateTime] :: Parse (<<<< "Бла") </p>

PS C: \ Documents and Settings \ Dan> [System.DateTime] :: Parse ("1/2/3")

01 февраля 2003 г. 00:00:00

Обратите внимание, что в приведенном выше описании используется текущая версия PowerShell (v1.0). Следующая версия PowerShell позволит вам более непосредственно смешивать C # со сценариями PowerShell. Чтобы разжечь аппетит, посмотрите эту 7-минутную заставку « C # для PowerShell » Даг Финке . Очень впечатляет!

4 голосов
/ 03 декабря 2008

Если вы используете Mono, вот что:

CsharpRepl

Дон Бокс взломал что-то очень простое и несколько лет назад.

4 голосов
/ 03 декабря 2008

В соответствии с ответом Лассевка, я получил "Сниппи" . Это было разработано для C # в глубине, и пользовательский интерфейс довольно мусор, но он работает - и позволяет также писать дополнительные члены (методы, вложенные классы и т. Д.), Например,

public static void Foo()
{ 
    Console.WriteLine("Hello");
}
...
Foo();

(... используется, чтобы сказать Сниппи, что «все, что здесь находится, принадлежит Мэйну».)

3 голосов
/ 06 июня 2013

Мы только что выпустили CShell полнофункциональную C # REPL IDE. Он поддерживает завершение кода, файлы сценариев, добавление ссылок и действительно расширяемый. Также мы планируем добавить поддержку NuGet в ближайшее время, что позволит очень быстро написать код и посмотреть, как он работает.

http://cshell.net/

CShell screenshot

Нам нравится LINQPad, но у него нет REPL, код выполняется один раз, и вы не сможете ничего сделать с результатами, если не измените сценарий и снова не выполните весь сценарий. Это нормально, но иногда, если вы хотите еще больше ощущения скрипки, чем оценивать ваш код в REPL, это действительно приятно и удобно.

2 голосов
/ 03 декабря 2008

Я также обнаружил, что SharpDevelop настолько быстр и легок, что это самый простой способ получить быстрый тестовый проект.

...