С# Console/CLI Interpreter?
Интересно, есть ли что-то вроде автономной версии Visual Studios "Immediate Window"? Иногда я просто хочу проверить некоторые простые вещи, такие как "DateTime.Parse(" бла "), чтобы увидеть, работает ли это. Но каждый раз я должен создать новое консольное приложение, поставить в свой код и протестировать его.
Непосредственное окно печально работает только тогда, когда я что-то отлаживаю. Может ли PowerShell это сделать? Просто откройте CLI, подобный тому, что делает cmd.exe, позволяя мне выполнить некоторый код С#?
Ответы
Ответ 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 " Дуг Финке. Очень впечатляет!
Ответ 7
Если вы используете Mono, то это:
CsharpRepl
Don Box взломал что-то очень просто несколько лет назад.
Ответ 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) и оставьте его запущенным в пристыкованном окне, когда вам это нужно.
Ответ 16
Обновление: http://avillenas.com/post/interactive-c
Ну, вы можете попробовать это.
- Загрузите и установите dotnet.github.io
- Открыть cmd
- Введите "dotnet repl"
- Введите то, что вам нужно.
Я сделал то, что ты хотел сделать. Нажмите здесь, чтобы увидеть gif
Ответ 17
Источники проекта Roslyn содержат REPL под названием CSI (http://source.roslyn.io/#csi/Csi.cs). Класс Csi в настоящее время является внутренним, но с проектом "csi" (Roslyn.sln: Interactive/Hosts/csi) доступно исполняемое консольное приложение, поддерживающее e. г. команду #r загрузить сборку и #load для загрузки и выполнения файлов script (запустите csi и используйте #help).