Консоль C#? [закрытый]
Кто-нибудь знает, есть ли консольное приложение c#, подобное консоли Python или Ruby? Я знаю всю разницу между" скомпилированным и интерпретированным", но с силой отражения C#я думаю, что это можно сделать.
Обновление Ну, это заняло всего около 200 строк, но я написал простую one...It работает очень похоже на osql. Вы вводите команды, а затем запускаете их с помощью go.
Остроконечная подошва http://www.gfilter.net/junk/sharpconsole.jpg
Если кто-то хочет этого, позвольте мне знать.
7 ответов:
Учитывая ваше упоминание о " силе отражения C#", я не уверен, ищете ли вы интерактивную консоль C# для небольших фрагментов кода вашего собственного (а-ля Ruby'S
irb
), или средство взаимодействия с существующим, скомпилированным приложением, запущенным в настоящее время как процесс.В первом случае:
- Windows PowerShell может быть вашим другом
- другим кандидатом будет оболочка C#
- наконец, CSI, а Простой Интерпретатор C#
Нашел это на reddit: http://tirania.org/blog/archive/2008/Sep-08.html
Цитата с сайта:
Идея была проста: создать интерактивную оболочку C#, изменив компилятор так, чтобы он генерировал и выполнял код динамически, а не просто генерировал статический код.
Если у вас нет для использования консоли, и вам просто нужно место для тестирования некоторых специальных фрагментов C#, то LinqPad - хороший вариант. Я нахожу его очень крутым/простым в использовании.
Я не уверен, что вы ищете это приложение для достижения. Если это просто попробовать какой-то код без необходимости создавать проект и все накладные расходы, чтобы просто проверить идею, то SnippetCompiler может быть хорошим выбором.
Я просто хотел предложить вам другой вариант.
Google показывает несколько попыток в этом направлении. Одна из них, в частности, иллюстрирует, почему это не так просто, как может показаться. http://www.codeproject.com/KB/cs/csi.aspx имеет базовый интерпретатор, использующий встроенную в .NET возможность компиляции кода c#. Ключевая проблема заключается в том, что авторский подход создает новую мини-сборку .NET для каждой интерпретируемой строки. C# может обладать отражающей способностью, чтобы иметь консоль в стиле python или ruby, но библиотеки .NET framework ориентированы на компиляцию C#, не динамически интерпретируя его. Если вы серьезно относитесь к этому, вы можете посмотреть на http://www.paxscript.net/, что выглядит как подлинная попытка интерпретации C#.
Я полагаю, вы ищете Сниппи =)