如何在脚本 运行 NLua 中对 .NET 枚举执行按位或运算?

How do I perform a bitwise OR on .NET enums in script running with NLua?

我在 C# 中有以下反射代码,我正在尝试使用 NLua 脚本复制它: G.Object.GetType().GetField("count", BindingFlags.Instance | BindingFlags.NonPublic);

一切都很好,直到我尝试对两个标志使用按位或运算。我已经尝试过:
BindingFlags.Instance + BindingFlags.NonPublic(非数的算术运算) BindingFlags.Instance | BindingFLags.NonPublic(显然不起作用,但值得一试)

我还尝试了位操作库的纯 Lua 实现。全部失败,因为我正在尝试或称为 'userdata' 输入 NLua.

使用 tonumber() 转换 'userdata' 类型也失败。

我当前的 Lua 代码如下:
obj = G.Object:GetType() field = obj:GetField("count", *...two OR'd flags here...*)

将 Enum 标志与 NLua 结合的最佳方法是使用辅助函数 luanet.enum

value = luanet.enum (BindingFlags, 'NonPublic,Instance')

示例:https://github.com/codefoco/NLuaBox/blob/00af36aa480281ae33835173430a806c54c2f9dc/Resources/source/OutputViewController.lua#L41