reckfellENGINE

Expression

Разбор и вычисление выражений с именованными входами.

На этой странице
class ExpressionReckfellSharpНаследует RefCounted

Разбирает выражение в Parse и вычисляет его в Execute с позиционными входами Variant. Это отдельный язык выражений, не интерпретатор C#. Сначала проверьте Error от Parse, затем HasExecuteFailed после Execute и тип результата. Nil может быть корректным результатом. GetErrorText может сохранить старую ошибку после успешного Execute. constCallsOnly ограничивает вызовы методов объектов, но не изолирует произвольный чужой код.

Полный числовой пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ExpressionКонструктор
# Expression
C#
public Expression();

Методы5

ExecuteVariant
# Execute
C#
public Variant Execute(Reckfell.Collections.Array inputs = null, ReckfellObject baseInstance = null, bool showError = true, bool constCallsOnly = false);

Вычисляет успешно разобранное выражение. После вызова проверяйте HasExecuteFailed; текст старой ошибки не является признаком текущего сбоя. Для повторного вычисления можно передать новые значения без повторного Parse.

Параметры
ИмяТипПо умолчанию
inputsReckfell.Collections.Arraynull
baseInstanceReckfellObjectnull
showErrorbooltrue
constCallsOnlyboolfalse
inputs

Значения в порядке inputNames из Parse. Обращение выражения к отсутствующему входу вызывает ошибку выполнения. null задаёт пустой массив.

baseInstance

Объект для неявного обращения к его методам и свойствам. null не предоставляет такого объекта; это не ограничение всех встроенных функций выражения.

showError

При true обычная ошибка вычисления также печатается движком. false позволяет обработать её через HasExecuteFailed/GetErrorText; не делает ошибочное вычисление успешным.

constCallsOnly

Разрешает только константные вызовы методов объектов через Variant. Не отключает все встроенные функции и не гарантирует изоляцию, отсутствие побочных эффектов или лимит ресурсов.

Возвращает Variant

Результат Variant. Nil допустим как значение и сам по себе не означает ошибку. При HasExecuteFailed=true не используйте результат как успешное вычисление.

GetErrorTextstring
# GetErrorText
C#
public string GetErrorText();

Возвращает диагностический текст. Parse очищает его, но успешный Execute не обязан очищать текст предыдущего сбоя. Сначала проверьте текущий статус операции.

Возвращает string

Текст ошибки разбора или выполнения; может быть пустым либо устаревшим после успешного Execute.

HasExecuteFailedbool
# HasExecuteFailed
C#
public bool HasExecuteFailed();

Проверяйте сразу после Execute. Ошибку Parse определяйте по возвращённому Error, а не этим методом.

Возвращает bool

true, если последнее Execute завершилось ошибкой; false после успешного выполнения, даже если результат Nil.

Parse2 перегрузки
# Parse · 1/2
C#
public Error Parse(string expression, ReadOnlySpan<string> inputNames);

Заменяет ранее разобранное выражение и очищает текст ошибки. Имена задают порядок значений будущего Execute. При ошибке разбора не вызывайте Execute.

Параметры
ИмяТипПо умолчанию
expressionstring—
inputNamesReadOnlySpan<string>—
expression

Строка на языке Expression. Литералы, операторы и доступные вызовы не являются синтаксисом произвольного C#-кода.

inputNames

Имена входных значений в порядке будущего массива Execute. Пустой span задаёт выражение без именованных входов.

Возвращает Error

Error.Ok при успешном разборе; Error.InvalidParameter при ошибке синтаксического разбора. Для диагностики прочитайте GetErrorText.

# Parse · 2/2
C#
public Error Parse(string expression, string[] inputNames = null);

Заменяет ранее разобранное выражение и очищает текст ошибки. Имена задают порядок значений будущего Execute. При ошибке разбора не вызывайте Execute.

Параметры
ИмяТипПо умолчанию
expressionstring—
inputNamesstring[]null
expression

Строка на языке Expression. Литералы, операторы и доступные вызовы не являются синтаксисом произвольного C#-кода.

inputNames

Имена входных значений в порядке будущего массива Execute. null означает пустой список.

Возвращает Error

Error.Ok при успешном разборе; Error.InvalidParameter при ошибке синтаксического разбора. Для диагностики прочитайте GetErrorText.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.