跳到主要内容

Marshal 速查表

权威全文:Marshal 总览LuaMarshalAs

形态: ClassUserData、ByObjUserData、ByValUserData 为 full userdata;OpaqueValue、非托管 Pointer 为 lightuserdata。

默认规则(摘要)

C# 类型C# → LuaLua → C#
基元 / boolnumber/boolean同左
stringstringstring
byte[]ByObjUserDataByObj / table;[Bytes] → string
classClassUserDataClassUserData / nil
T[]ByObjUserDataByObj / table
mdarrayByObjUserData ByObj(不接受 table)
enuminteger/numberinteger 或 boxed
struct见 ByVal / ByObj / Opaque见 STRUCT 规范
DelegateDelegateUserDatafunction / userdata
ref/out/in(C#→Lua)OpaqueValue

[LuaMarshalAs](常用)

LuaMarshalType效果
Default上表
UserData强制 full userdata
Bytesbyte[] ↔ Lua string
OpaqueLightUserDataC#→Lua opaque handle

相关文档