👉 out&ref

В нашей библиотеке реализована работа с out&ref посредством стека. При вызове функции с out/ref на стек ложится выходное значение/ссылка. А при создании новой переменной - забирается при наличии.

Это значит, что вы можете вызывать все C# функции, как игры, так и чита, без каких либо ограничений по параметрам в отличии от других API.

Пример с out:

local is_success, output = clr.System.Int32.TryParse("23")
log(is_success)
log(output)

По стандарту функция выглядит так:

public static bool TryParse(string s, out int result)

Вывод: True 23

Пример с ref из C#:

local value = 5
local new_value = clr.lua_lib_tests.main.test_ref(value)
log("value after ref:", new_value)

По стандарту функция выглядит так:

public static void test_ref(ref int value) => value += 1;

Вывод: value after ref: 6

Пример с ref из Lua:

Вывод: value2 after ref: 4

Также вы можете задавать старой переменной новое значение.

Пример с ref из C#:

Вывод: value after ref: 6

Пример с ref из Lua:

Вывод: value2 after ref: 4

Last updated