如何在 Lua 中注册 C# class 构造函数
how to register a C# class constructor in Lua
我正在使用 c# class:
public class TestClass
{
int _a;
public void Set(int a)
{
_a = a;
}
public void Print()
{
Console.WriteLine(_a);
}
}
并注册:
Lua lua = new Lua();
lua["Debug"] = new TestClass();
lua.DoFile("script.lua");
然后从脚本中调用它:
a=Debug
a:Set(5)
a:Print()
我应该如何change/add使用带参数的构造函数?
首先,您需要在 class TestClass
所在的位置导入相应的命名空间,以便从 lua 脚本中使用它:
namespace Application
{
public class TestClass
{
int _a;
public void Print()
{
Console.WriteLine(_a);
}
public TestClass(int a)
{
this._a = a;
}
}
}
Lua lua = new Lua();
lua.LoadCLRPackage();
lua.DoFile("script.lua");
现在您将能够从 script.lua 文件中实例化 TestClass
:
import ('Application')
a=TestClass(5)
a:Print()
我正在使用 c# class:
public class TestClass
{
int _a;
public void Set(int a)
{
_a = a;
}
public void Print()
{
Console.WriteLine(_a);
}
}
并注册:
Lua lua = new Lua();
lua["Debug"] = new TestClass();
lua.DoFile("script.lua");
然后从脚本中调用它:
a=Debug
a:Set(5)
a:Print()
我应该如何change/add使用带参数的构造函数?
首先,您需要在 class TestClass
所在的位置导入相应的命名空间,以便从 lua 脚本中使用它:
namespace Application
{
public class TestClass
{
int _a;
public void Print()
{
Console.WriteLine(_a);
}
public TestClass(int a)
{
this._a = a;
}
}
}
Lua lua = new Lua();
lua.LoadCLRPackage();
lua.DoFile("script.lua");
现在您将能够从 script.lua 文件中实例化 TestClass
:
import ('Application')
a=TestClass(5)
a:Print()