Unity 6.3
0 онлайн 70 гостей 3 в системе
Вход

SearchExpressionContext

структура в UnityEditor.Search

Описание

Этот контекст содержит все данные, необходимые для оценки SearchExpression, и позволяет пользователю взаимодействовать с временем выполнения выражения. SearchExpressionContext создается автоматически с SearchExpressionRuntime при каждом вызове SearchExpression.Execute.

Вот пример, показывающий, как SearchExpressionContext используется во время оценки:

[SearchExpressionEvaluator(SearchExpressionType.Iterable | SearchExpressionType.Variadic)]
[SearchExpressionEvaluatorSignatureOverload(SearchExpressionType.Number, SearchExpressionType.Iterable | SearchExpressionType.Variadic)]
[Description("Extract and returns the X first results for each expression.")]
public static IEnumerable<SearchItem> TakeXFirst(SearchExpressionContext c)
{
    var argIndex = 0;
    var takeNumber = 1;
    if (c.args[0].types.HasFlag(SearchExpressionType.Number))
    {
        ++argIndex;
        takeNumber = Math.Max((int)(c.args[0].GetNumberValue(takeNumber)), 0);
    }

    for ( ; argIndex < c.args.Length; ++argIndex)
    {
        var iterable = c.args[argIndex].Execute(c);
        var taken = 0;
        foreach (var item in iterable)
        {
            if (item == null)
                yield return null;
            else
            {
                yield return item;
                ++taken;
                if (taken == takeNumber)
                {
                    c.Break();
                    break;
                }
            }
        }
    }
}

Свойства

Свойство Описание
argsАргументы, переданные SearchExpression, оцениваются.
expression[[]SearchExpression] оценивается.
itemsSearchItems, полученный путем оценки searchExpression.
runtimeSearchExpressionRuntime связан с этим контекстом. Время выполнения хранит все данные времени выполнения (фреймы стека, стек контекстов и элементов), необходимые для оценки SearchExpression.
searchSearchContex, содержащий поисковый запрос, который был проанализирован для создания SearchExpression.
validДопустим ли текущий контекст или нет. Если не допустим, это означает, что ассоциированный SearchExpression является нулевым или SearchExiressionRuntime не допустим.

Открытые методы

Метод Описание
BreakПрервать оценку SearchExpression, что означает, что предметы больше не будут сдаваться.
ContinueСкажите SearchExpression оценке продолжить.
IsBreakingВыявлен ли текущий контекст для прекращения исполнения?
IsContinuingЯвляется ли нынешний контекст основанием для продолжения исполнения?
ResetIterationControlПерезапустить оценку и итерацию SearchExpression.
ResolveAliasПопробуйте разрешить значение псевдонима с помощью SearchExpressionRuntime, прикрепленного к этому контексту. Каждый кадр, если его попросят разрешить SearchExpression.alias.
ThrowErrorОстановка оценки SearchExpression путём выброса SearchExceptionEvaluatorException. Пользователь, пишущий оценщик, может решить выбросить эти исключения, если параметры, переданные для оценки, не являются действительными или если во время оценки возникла проблема.
ToStringПолучить строковое представление контекста.