gpt4 book ai didi

c# - 如何在使用 NLua 运行的脚本中对 .NET 枚举执行按位或运算?

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:52 28 4
gpt4 key购买 nike

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

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

我也尝试过位操作库的纯 Lua 实现。都失败了,因为我正在尝试或在 NLua 中称为“用户数据”类型。

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

我目前的Lua代码如下:
obj = G.Object:GetType()
field = obj:GetField("count", *...这里有两个 OR 标志...*)

最佳答案

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

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

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

关于c# - 如何在使用 NLua 运行的脚本中对 .NET 枚举执行按位或运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34471144/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com