Ich bin dabei, einige C#/Lua-Schnittstellencodes von einer Lua-Bibliothek zu einer anderen zu verschieben. Also habe ich 50 oder mehr Methodenbindungen, die ich neu schreiben muss, um die neue Bibliotheksbindungsschnittstelle zu verwenden. Die neue Version ist umständlicher und klobiger, hier ist ein Beispiel, wie man eine C# -Methode namens createTable() bindet.C# Wie kann ich diesen delegierten Code verbessern?
// 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;
}
Die einzige Methode, die Bibliothek mich für die Bindung gibt, ist luaRuntime.CreateFunctionFromDelegate() so habe ich dieses Konstrukt verwenden.
Dieser Code ist in Ordnung für 1 oder 2 separate Funktionsbindungen, aber es wird sehr hässlich aussehen mit 50 oder so von ihnen nacheinander. Es würde schöner aussehen, wenn ich die Details der Methode irgendwie in eine C# -Tabelle schreiben und dann in einer Schleife über sie hinweg durchlaufen könnte. Wäre es möglich, die createFunctionFromDelegate() -Zeile so zu ändern, dass sie um eine Tabelle herumläuft? Wenn es machbar ist, wie würde dieser Code aussehen?
Dank für irgendwelche Gedanken
Geoff