Проверять, указывает ли итератор на последний элемент?

7
задан Peter Mortensen 24 November 2010 в 18:47
поделиться

3 ответа

Я встроил небольшой редактор C # в приложение и скомпилировал / запустил результаты

ala

var codeProvider = new CSharpCodeProvider( 
              new Dictionary<string, string> { { "CompilerVersion", "v3.5" } } );

var parameters = new CompilerParameters( );
// add any of your 'library' dlls as references
parameters.ReferencedAssemblies.AddRange( dlls.ToArray( ) );
parameters.OutputAssembly = outputPath;
CompilerResults r = codeProvider.CompileAssemblyFromFile( parameters, sourceFiles );
1
ответ дан 7 December 2019 в 07:38
поделиться

Python (IronPython) получил бы мой голос. Это динамический язык, который вы можете использовать для написания сценариев .NET-программ, и вы можете использовать его в интерактивном режиме (на самом деле не пробовали интерактивно с IronPython, но вы, безусловно, можете с «обычным» питоном). К сожалению, это не будет полностью интуитивно понятным для разработчиков C ++ и C #.

Вы могли бы просто использовать C # в качестве языка сценариев (вы можете компилировать и выполнять код во время выполнения), но вы не получите интерактивную консоль, и это не очень похоже на "скрипт".

Я считаю, что для языка сценариев очень важна простота. «Hello World» в Python - это просто print «Hello World» , где в C # вам потребуется пространство имен, класс, статический метод Main и т. Д. Если вы хотите использовать C #, вы можете смоделировать это, обернув предоставленный пользователем код внутри определения функции (или, по крайней мере, класса) перед компиляцией, поэтому их «сценарий» может быть просто содержимым функции. Это несколько ограничит то, что они могут делать в сценарии, что может быть хорошим или плохим, в зависимости от того, что вы хотите. Если им нужно несколько классов и функций, возможно, им нужно будет написать полный плагин для вашего случая.

2
ответ дан 7 December 2019 в 07:38
поделиться

Не ясно будущее для DLR поддерживаемых в настоящее время динамических языков IronRuby и IronPython. Что неясно, так это направление Microsoft в отношении этих 2. Пока я не услышу об этом от Gu или выше, я бы избегал принятия решения ни по одному из этих 2. Это не поможет вам сегодня, принимая дизайнерское решение за ваших пользователей. Я чувствую, что IronPython сохранит поддержку, но это просто беспочвенные предположения.

Что касается сценариев .NET, подумайте также о Boo.

Boo - объектно-ориентированный язык программирования со статической типизацией, который стремится использовать поддержку Common Language Infrastructure для Unicode, интернационализации и веб-приложений, используя при этом синтаксис, вдохновленный Python 1 , и особый упор о расширяемости языка и компилятора. Некоторые особенности, которые следует отметить, включают вывод типа, генераторы, мультиметоды, дополнительную утиную типизацию, макросы, истинные замыкания, каррирование и первоклассные функции.

1
ответ дан 7 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: