reckfellENGINE

Callable

Значение C# для вызова метода или .NET-делегата через API движка.

На этой странице
struct CallableReckfellSharpНаследует ValueType

Структура C#, представляющая вызываемый метод или делегат. Callable.From(...) создаёт вариант для .NET-делегата; конструктор Callable(target, method) хранит объект и имя метода. Call(...) передаёт аргументы через Variant, поэтому их число и типы должны соответствовать вызываемому методу.

Представления отличаются: у делегата может быть заполнен Delegate при пустом Target, а у варианта с объектом — Target и Method при пустом Delegate. Одно поле не является универсальной проверкой возможности вызова. Само создание значения не доказывает существование метода или время жизни цели.

В C# Callable не преобразуется в bool. Значение default(Callable) также не является ссылкой null. Для обычной подписки на C#-событие используйте синтаксис событий; Callable нужен там, где API ожидает этот тип.

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

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

CallableКонструктор
# Callable
C#
public Callable(ReckfellObject target, StringName method);

Сохраняет ссылку на target и имя method, не вызывая метод. Конструктор не проверяет существование метода и не гарантирует время жизни нативного объекта. Для делегата или лямбды используйте Callable.From. Имя сохраняется как та же управляемая оболочка StringName: не освобождайте её, пока Callable используется.

Параметры
ИмяТипПо умолчанию
targetReckfellObject—
methodStringName—
target

Живой объект, метод которого будет вызван. Callable не заменяет управление временем жизни объекта.

method

Точное зарегистрированное имя метода; регистр значим. Для C#-метода используйте nameof либо доступную MethodName-константу.

Свойства4

DelegateСвойство
# Delegate
C#
public Delegate Delegate { get; }

Возвращает сохранённый .NET-делегат у From/CreateWithUnsafeTrampoline. У представления «объект + метод» и default(Callable) — null. Наличие делегата не проверяет время жизни захваченных нативных объектов; отсутствие делегата не делает объектно-методный Callable недействительным.

MethodСвойство
# Method
C#
public StringName Method { get; }

Возвращает сохранённую оболочку имени у представления «объект + метод». У Callable.From и default(Callable) может быть null. Это не имя, вычисленное из Delegate.Method. Возвращаемая ссылка заимствована: не освобождайте её отдельно, пока Callable используется.

TargetСвойство
# Target
C#
public ReckfellObject Target { get; }

Для конструктора Callable(target, method) возвращает сохранённый объект. Для делегата — Delegate.Target, только если это ReckfellObject; у статического делегата или обычного managed-замыкания может быть null. Это не универсальная проверка возможности вызова и не гарантия живого нативного объекта. Свойство не передаёт владение объектом.

TrampolineСвойство
# Trampoline
C#
public unsafe delegate*<object, Reckfell.NativeInterop.NativeVariantPtrArgs, out Reckfell.NativeInterop.reckfell_variant, void> Trampoline { get; }

Низкоуровневый managed-указатель, вызывающий сохранённый Delegate через нативные Variant-аргументы. У From он создаётся SDK, у CreateWithUnsafeTrampoline задаётся вызывающим кодом. Для обычного вызова используйте Call. Null-указатель встречается у представления «объект + метод»; свойство не является универсальной проверкой валидности.

Методы25

Call2 перегрузки
# Call · 1/2
C#
public Variant Call(params Variant[] args);

Синхронно вызывает сохранённый метод или делегат. Аргументы передаются как Variant и преобразуются SDK к ожидаемым типам; это не обычная проверяемая компилятором C#-сигнатура вызова. Заранее обеспечьте нужное число аргументов, их допустимые типы и живой объект назначения.

Для Action результат имеет тип Variant.Type.Nil; у Func результат преобразуется в Variant. Nil не доказывает успех: ошибки вызова или исключения делегата могут попасть в журнал. В текущем мосте нельзя рассчитывать, что каждое такое исключение будет повторно выброшено вызывающему C#-коду.

В примере Twice(21) возвращает 42. Локальный аргумент и возвращённый Variant имеют свои using.

C#
using System.Threading.Tasks;
using Reckfell;

public static class CallableSignalExamples
{
    public static int Twice(int value)
    {
        var callback = Callable.From<int, int>(static number => number * 2);
        using var argument = Variant.From(value);
        using var result = callback.Call(argument);
        return result.AsInt32();
    }

    public static void SetLabelLater(Label label, string text)
    {
        var callback = Callable.From<string>(value =>
        {
            if (ReckfellObject.IsInstanceValid(label)) label.Text = value;
        });
        using var argument = Variant.From(text);
        callback.CallDeferred(argument);
    }

    public static async Task WaitNextProcess(EntityTree tree)
    {
        Variant[] arguments = await new Signal(tree, EntityTree.SignalName.ProcessFrame);
        foreach (var argument in arguments) argument.Dispose();
    }
}
Параметры
ИмяТипПо умолчанию
argsVariant[]—
args

Аргументы по порядку параметров метода или делегата. Для Callable.From их число должно точно совпадать с числом входов Action/Func; пустой набор подходит функции без аргументов.

Возвращает Variant

Результат как принадлежащий вызывающему коду Variant; освобождайте его после чтения. Void/Action даёт Nil, но Nil может также сопровождать ошибку.

# Call · 2/2
C#
public Variant Call(ReadOnlySpan<Variant> args);

Синхронно вызывает сохранённый метод или делегат. Аргументы передаются как Variant и преобразуются SDK к ожидаемым типам; это не обычная проверяемая компилятором C#-сигнатура вызова. Заранее обеспечьте нужное число аргументов, их допустимые типы и живой объект назначения.

Для Action результат имеет тип Variant.Type.Nil; у Func результат преобразуется в Variant. Nil не доказывает успех: ошибки вызова или исключения делегата могут попасть в журнал. В текущем мосте нельзя рассчитывать, что каждое такое исключение будет повторно выброшено вызывающему C#-коду.

В примере Twice(21) возвращает 42. Локальный аргумент и возвращённый Variant имеют свои using.

C#
using System.Threading.Tasks;
using Reckfell;

public static class CallableSignalExamples
{
    public static int Twice(int value)
    {
        var callback = Callable.From<int, int>(static number => number * 2);
        using var argument = Variant.From(value);
        using var result = callback.Call(argument);
        return result.AsInt32();
    }

    public static void SetLabelLater(Label label, string text)
    {
        var callback = Callable.From<string>(value =>
        {
            if (ReckfellObject.IsInstanceValid(label)) label.Text = value;
        });
        using var argument = Variant.From(text);
        callback.CallDeferred(argument);
    }

    public static async Task WaitNextProcess(EntityTree tree)
    {
        Variant[] arguments = await new Signal(tree, EntityTree.SignalName.ProcessFrame);
        foreach (var argument in arguments) argument.Dispose();
    }
}
Параметры
ИмяТипПо умолчанию
argsReadOnlySpan<Variant>—
args

Аргументы по порядку параметров метода или делегата. Для Callable.From их число должно точно совпадать с числом входов Action/Func; пустой набор подходит функции без аргументов.

Возвращает Variant

Результат как принадлежащий вызывающему коду Variant; освобождайте его после чтения. Void/Action даёт Nil, но Nil может также сопровождать ошибку.

CallDeferred2 перегрузки
# CallDeferred · 1/2
C#
public void CallDeferred(params Variant[] args);

Ставит вызов в очередь отложенного выполнения и сразу возвращает управление. Аргументы копируются в очередь; локальные Variant после постановки можно освободить. Результат метода здесь получить нельзя.

Очередь обрабатывается во время idle/flush, а не через гарантированное число кадров и не как таймер. Не создавайте бесконечную цепочку, где каждый отложенный вызов снова ставит себя в очередь. До фактического выполнения объект может быть удалён: пример SetLabelLater у Call проверяет IsInstanceValid перед изменением Label.

Параметры
ИмяТипПо умолчанию
argsVariant[]—
args

Аргументы будущего вызова в порядке параметров. Проверяйте число и преобразуемость типов заранее.

# CallDeferred · 2/2
C#
public void CallDeferred(ReadOnlySpan<Variant> args);

Ставит вызов в очередь отложенного выполнения и сразу возвращает управление. Аргументы копируются в очередь; локальные Variant после постановки можно освободить. Результат метода здесь получить нельзя.

Очередь обрабатывается во время idle/flush, а не через гарантированное число кадров и не как таймер. Не создавайте бесконечную цепочку, где каждый отложенный вызов снова ставит себя в очередь. До фактического выполнения объект может быть удалён: пример SetLabelLater у Call проверяет IsInstanceValid перед изменением Label.

Параметры
ИмяТипПо умолчанию
argsReadOnlySpan<Variant>—
args

Аргументы будущего вызова в порядке параметров. Проверяйте число и преобразуемость типов заранее.

CreateWithUnsafeTrampolineCallable
# CreateWithUnsafeTrampoline
C#
public static unsafe Callable CreateWithUnsafeTrampoline(Delegate @delegate, delegate*<object, Reckfell.NativeInterop.NativeVariantPtrArgs, out Reckfell.NativeInterop.reckfell_variant, void> trampoline);

Низкоуровневое создание Callable для собственного managed-trampoline. Для обычных Action/Func используйте From: он сам проверяет число аргументов и выполняет Variant-преобразования.

Trampoline получает делегат как object, представление нативных аргументов и out reckfell_variant для результата. Он обязан проверить входы, привести делегат к нужному типу и инициализировать результат во всех ветках; для отсутствующего результата используется default. Возвращаемое нативное значение передаётся мосту во владение. Сигнатура managed-указателя должна точно совпадать с SDK, включая out; это не указатель с unmanaged ABI.

Параметры
ИмяТипПо умолчанию
delegateDelegate—
trampolinedelegate*<object, Reckfell.NativeInterop.NativeVariantPtrArgs, out Reckfell.NativeInterop.reckfell_variant, void>—
delegate

Делегат, который trampoline умеет привести и вызвать; не null.

trampoline

Действительный managed-указатель точной сигнатуры SDK; третий параметр — out reckfell_variant.

Возвращает Callable

Значение Callable с данным делегатом и указателем. Создание не подтверждает безопасность собственного trampoline.

From20 перегрузок
# From · 1/20
C#
public static Callable From(Action action);

Создаёт Callable из Action с числом входных аргументов 0. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 2/20
C#
public static Callable From<T0>(Action<T0> action);

Создаёт Callable из Action с числом входных аргументов 1. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 3/20
C#
public static Callable From<TResult>(Func<TResult> func);

Создаёт Callable из Func с числом входных аргументов 0. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 4/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6, T7, T8, TResult>(Func<T0, T1, T2, T3, T4, T5, T6, T7, T8, TResult> func);

Создаёт Callable из Func с числом входных аргументов 9. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, T4, T5, T6, T7, T8, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 5/20
C#
public static Callable From<T0, T1>(Action<T0, T1> action);

Создаёт Callable из Action с числом входных аргументов 2. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 6/20
C#
public static Callable From<T0, TResult>(Func<T0, TResult> func);

Создаёт Callable из Func с числом входных аргументов 1. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 7/20
C#
public static Callable From<T0, T1, T2>(Action<T0, T1, T2> action);

Создаёт Callable из Action с числом входных аргументов 3. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 8/20
C#
public static Callable From<T0, T1, TResult>(Func<T0, T1, TResult> func);

Создаёт Callable из Func с числом входных аргументов 2. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 9/20
C#
public static Callable From<T0, T1, T2, T3>(Action<T0, T1, T2, T3> action);

Создаёт Callable из Action с числом входных аргументов 4. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 10/20
C#
public static Callable From<T0, T1, T2, TResult>(Func<T0, T1, T2, TResult> func);

Создаёт Callable из Func с числом входных аргументов 3. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 11/20
C#
public static Callable From<T0, T1, T2, T3, T4>(Action<T0, T1, T2, T3, T4> action);

Создаёт Callable из Action с числом входных аргументов 5. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3, T4>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 12/20
C#
public static Callable From<T0, T1, T2, T3, TResult>(Func<T0, T1, T2, T3, TResult> func);

Создаёт Callable из Func с числом входных аргументов 4. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 13/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5>(Action<T0, T1, T2, T3, T4, T5> action);

Создаёт Callable из Action с числом входных аргументов 6. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3, T4, T5>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 14/20
C#
public static Callable From<T0, T1, T2, T3, T4, TResult>(Func<T0, T1, T2, T3, T4, TResult> func);

Создаёт Callable из Func с числом входных аргументов 5. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, T4, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 15/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6>(Action<T0, T1, T2, T3, T4, T5, T6> action);

Создаёт Callable из Action с числом входных аргументов 7. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3, T4, T5, T6>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 16/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, TResult>(Func<T0, T1, T2, T3, T4, T5, TResult> func);

Создаёт Callable из Func с числом входных аргументов 6. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, T4, T5, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 17/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6, T7>(Action<T0, T1, T2, T3, T4, T5, T6, T7> action);

Создаёт Callable из Action с числом входных аргументов 8. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3, T4, T5, T6, T7>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 18/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6, TResult>(Func<T0, T1, T2, T3, T4, T5, T6, TResult> func);

Создаёт Callable из Func с числом входных аргументов 7. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, T4, T5, T6, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 19/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6, T7, T8>(Action<T0, T1, T2, T3, T4, T5, T6, T7, T8> action);

Создаёт Callable из Action с числом входных аргументов 9. При Call передавайте ровно столько Variant в том же порядке. Все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат вызова Action — Nil.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
actionAction<T0, T1, T2, T3, T4, T5, T6, T7, T8>—
action

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

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

# From · 20/20
C#
public static Callable From<T0, T1, T2, T3, T4, T5, T6, T7, TResult>(Func<T0, T1, T2, T3, T4, T5, T6, T7, TResult> func);

Создаёт Callable из Func с числом входных аргументов 8. При Call передавайте ровно столько Variant в том же порядке. TResult и все типы аргументов должны поддерживаться Variant-преобразованиями SDK; результат Func преобразуется в Variant.

Это представление делегата, а не пары «объект + имя». Замыкание хранит захваченные данные и видит их последующие изменения; оно не делает захваченный нативный объект бессмертным. Для повторных подписок сохраняйте обработчик и управляйте отпиской отдельно.

Параметры
ИмяТипПо умолчанию
funcFunc<T0, T1, T2, T3, T4, T5, T6, T7, TResult>—
func

Непустой делегат с указанными входами и возвращаемым TResult.

Возвращает Callable

Значение Callable с сохранённым делегатом и trampoline для указанной сигнатуры.

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

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

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

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