如何在脚本 运行 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')
我在 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')