C# Scripting (Сценарий C#)
Этот компонент позволяет скомпилировать и запустить указанный пользователем C # код. По умолчанию компонент кода не содержит. Чтобы добавить код дважды кликните на компоненте или выберите элемент меню "Edit…" («Редактировать...»).
Любые ошибки, которые возникают во время компиляции будут направлены на «выход» ('out') результирующего параметра и меню компонента.
По умолчанию, имеется два вводных параметра {x,y} и один результирующий параметр {A}. Все они имеют тип System.Object. Вводные и результирующие параметры могут быть добавлены, удалены и переименованы посредством меню компонента.
Если Вы уверены, что определенный вводный параметр всегда содержит данные одного типа (сообщение (say), целое число (int) или OnCircle (На Окружности)), то Вы можете определить тип подсказки (type-hint) для этого параметра. Подсказки типа (Type-hints) улучшают точность определения типа (type-fidelity) и повышают производительность во время выполнения путём предотвращения некоторых появившихся в течении обработки проблем. C# довольно требователен в отношении типовой безопасности, таким образом, Вы должны, по возможности, устанавливать подсказки типа (type-hints) для правильной компиляции вашего скрипта.
Результирующие параметры пока не поддерживают подсказки типа (type-hints).
Вы можете использовать функцию Print() (Печать) для отображения строк в результирующем ('out') параметре. Print (Печать) работает аналогично System.String.Format().
Вы можете использовать фунцию Reflect() (Отражение) для получения информации о классах и методах. Например, если Вы хотите получить больше информации о данных, которые доступны через вводный параметр 'x', напишите:
Reflect(x);
Строка с информацией о типе метода будет записана в результирующем параметре ('out'). Избыточные методы будут появляться в этом списке лишь единожды.
Если Вы хотите получить дополнительную информацию о определённом методе, то используйте следующее:
Reflect(x, "MethodName");
который предоставляет полную информацию о всех избыточных элементах.
Внутри кода Вы можете использовать поле 'app' («приложение»), которое ссылается на активный экземпляр MRhinoApp.
Внутри кода Вы можете использовать поле 'doc' («документ»), которое ссылается на активный экземпляр MRhinoDoc.
Так как ваш пользовательский код заканчивается внутри метода определения класса, Вы не можете определить дополнительные пользовательские классы или методы. Если Вы хотите получить больше информации о том, как выглядит скомпилированный исходный код, Вы можете экспортировать (export) код через меню компонента.
Весь пользовательский код C# размещается внутри динамически генерируещегося класса шаблона, который, в свою очередь, компилируется в сборку с использованием компилятора CLR, поставляемого с DotNET framework. Данная сборка существует исключительно в памяти компьютера и не будет выгружено вплоть до выхода из Rhino.