Подтвердить что ты не робот

С# Console/CLI Interpreter?

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

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

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

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

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

В принципе, теперь у вас есть:

  • IDE REPL - С# Интерактивное окно в VS
  • Script интерпретатор - csi foo.csx от Dev Cmd Prompt
  • Командная строка REPL - csi из командной строки Dev Cmd
  • API сценариев

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

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

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

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

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

Ответ 8

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

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

(The... используется, чтобы рассказать Snippy "все, что здесь находится в Main".)

Ответ 9

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

http://cshell.net/

CShell screenshot

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

Ответ 10

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

Ответ 11

Вы можете найти тестовый стенд объекта. Это не очень хорошо известно, но позволяет создавать экземпляры классов, выполнять статические методы и т.д. Это может быть полезно для обнаружения того, как использовать незнакомые API или для быстрой отладки ваших собственных классов и методов, сохраняя создание тестового жгута для простых проверок.

Здесь вы можете найти документацию MSDN:

http://msdn.microsoft.com/en-us/library/c3775d98%28VS.80%29.aspx

Ответ 12

Если бы вы могли подождать некоторое время. похоже, что может быть эквивалент С# Ruby irb для С# 4.0 Андерс Х. продемонстрировал интерактивную консольную сессию, в которой вы можете ввести произвольный код на С# и увидеть результаты в своем "" Будущее С#" на PDC 2008 Вы можете даже открыть окно WPF, а затем играть с ним через консольный интерфейс. Довольно круто.

Ответ 13

Используйте LINQPad.

Несмотря на это, он может выполнять любой код С# или VB, от простых выражений до целых классов.

Кроме того, он может визуализировать целые графы объектов в результатах.

Вы даже можете добавить ссылки на свои собственные сборки.

Ответ 14

Попробуйте С# REPL Script Environment, которая является частью Платформа O2. Это именно то, о чем вы просите.

Он предоставит вам идеальную среду для тестирования всех функций С# и API (концептуально среда O2 REPL похожа на LinqPAD)

Вы также должны взглянуть на Рослин из Microsoft. На Несколько инструментов на основе Roslyn (все работает автономно вне VisualStudio), первый из них - простой Roslyn REPL

Ответ 15

Если вам известно и нравится Python, то IronPython может быть хорошей альтернативой. Он поставляется с консолью (Python) REPL (ipy.exe), где вы можете импортировать и использовать все типы .Net.

Я считаю это полезным для тестирования мелочей, точно так же, как DateTime.Parse("Blah").

Обратите внимание, что он фактически не может выполнять код С#, но если все, что вы хотите, это доступ к .Net, то он идеально подходит. Кроме того, если вы установите IronPython Tools для VS, вы можете запустить сеанс REPL прямо в VS с помощью одного сочетания клавиш (Alt + I) и оставьте его запущенным в пристыкованном окне, когда вам это нужно.

Ответ 17

Источники проекта Roslyn содержат REPL под названием CSI (http://source.roslyn.io/#csi/Csi.cs). Класс Csi в настоящее время является внутренним, но с проектом "csi" (Roslyn.sln: Interactive/Hosts/csi) доступно исполняемое консольное приложение, поддерживающее e. г. команду #r загрузить сборку и #load для загрузки и выполнения файлов script (запустите csi и используйте #help).