我正在考虑将一些C#/ Lua接口代码从一个Lua库移到另一个。所以我有50个或更多的方法绑定,我需要重写使用新的库绑定接口。新的更笨拙,笨拙,下面是一个如何绑定一个叫做createTable()的c#方法的例子。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()行来使其能够遍历表格?如果可行,那么代码会是什么样子?
感谢您的任何想法
杰夫