如何在 Lua 中注册 C# 类的构造函数

我正在使用一个 C# 类:

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()

我该怎么修改/增加以使用带参数的构造函数呢?

点赞
用户5472058
用户5472058

首先,您需要导入类TestClass所在的相应命名空间,以便从lua脚本中使用它:

namespace Application
{
    public class TestClass
    {
        int _a;

        public void Print()
        {
            Console.WriteLine(_a);
        }

        public TestClass(int a)
        {
            this._a = a;
        }
    }
}

接下来您将能够从script.lua文件实例化TestClass

Lua lua = new Lua();
lua.LoadCLRPackage();
lua.DoFile("script.lua");

现在您将能够从script.lua文件实例化TestClass

import ('Application')
a=TestClass(5)
a:Print()
2017-05-21 21:32:09