Я изучаю какой-либо код интерфейса C#/Lua из одной библиотеки Lua в другую. Поэтому у меня есть 50 или более привязок методов, которые мне нужно переписать, чтобы использовать новый интерфейс привязки библиотеки. Новый является более неудобным и неуклюжим, вот пример того, как связать один метод C#, называемый createTable().C# как я могу улучшить этот связанный с делегатом код?
// Delegates
private delegate LuaTable dlgCreateTable();
public LuaTable createTable()
{
LuaTable table = luaRuntime.CreateTable();
return table;
}
then I do ........
using (LuaFunction funcWrapper = luaRuntime.CreateFunctionFromDelegate(new dlgCreateTable(createTable)))
{
luaRuntime.Globals["createTable"] = funcWrapper;
}
Единственный метод, библиотека дает мне за связывание luaRuntime.CreateFunctionFromDelegate(), так что я должен использовать эту конструкцию.
Этот код подходит для 1 или 2 отдельных привязок к функциям, но он будет выглядеть очень уродливо с 50 или около того из них один за другим. Было бы лучше, если бы я мог как-то поместить данные метода в таблицу C#, а затем перебрать их в цикле. Можно ли изменить строку createFunctionFromDelegate(), чтобы сделать так, чтобы он мог выполнять итерацию вокруг таблицы? Если это осуществимо, как будет выглядеть этот код?
Спасибо за любые мысли
Geoff