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

标签 c# lua nlua

我正在使用 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()

我应该更改/添加什么以使用带参数的构造函数?

最佳答案

首先,您需要在您的类 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# - 如何在 Lua 中注册 C# 类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44100984/

相关文章:

shell - 如何在lua中获取shell脚本的返回码?

lua - 如何根据项目的稀有性设置从列表中随机选择项目的正确逻辑,即 "rare" "normal"

.net - 使用 NLua, "require"关键字如何工作

c# - 尝试制作动画时,C# 中的完成处理程序是什么样的?

c# - 在 dotnet 的 Controller 中包含自定义类时调用工厂

c# - 如何在 C# 中初始化一个 BigInteger?

c# - 将 View 模型属性分组到不同的类别中是一种好的做法吗?

c++ - 如何使用 LuaBridge 注册从同一个类继承的两个类?

c# - 如何从 C# 到 NLua 传递和迭代对象列表

c# - 使用 NLua 的 C# 类实例