跳到主要内容

zlua.types

zlua.typeszlualib.lua 加载时初始化,提供常用 System 类型全名字符串,可直接作为 zlua.signaturezlua.make_generic_typezlua.box 等的 typeArg,等价于 zlua.typeof(CSharp.mscorlib....) 的简写。

源码:ZLua~/lualib/zlualib.lua

:::info 命名变更 旧称 zlua.corlibtypes 已废弃,统一为 zlua.types。 :::

完整常量表

Lua 键System 类型典型用途
zlua.types.voidSystem.Void仅签名场景(无参构造等)
zlua.types.boolSystem.Booleansignature、泛型实参
zlua.types.charSystem.Charsignature
zlua.types.byteSystem.Bytesignature
zlua.types.sbyteSystem.SBytesignature
zlua.types.shortSystem.Int16signature
zlua.types.ushortSystem.UInt16signature
zlua.types.intSystem.Int32signature(与 int32 相同)
zlua.types.int32System.Int32signature、泛型实参
zlua.types.uintSystem.UInt32signature
zlua.types.longSystem.Int64signature
zlua.types.ulongSystem.UInt64signature
zlua.types.floatSystem.Singlesignature
zlua.types.doubleSystem.Doublesignature
zlua.types.intptrSystem.IntPtrsignature
zlua.types.uintptrSystem.UIntPtrsignature
zlua.types.decimalSystem.Decimal声明存在;互操作默认不支持
zlua.types.objectSystem.Object泛型实参、签名
zlua.types.stringSystem.Stringsignature

用法示例

方法签名 / 全签名键

-- zlua.signature 只生成参数括号;全签名键 = 方法名 .. sig
local sig = zlua.signature(zlua.types.int32, zlua.types.string)
-- 同名多候选时 Bind 已挂好,直接:
-- demo['SomeMethod(System.Int32,System.String)'](demo, …)

泛型闭合

local list_int = zlua.make_generic_type(CSharp.mscorlib['System.Collections.Generic.List`1'], zlua.types.int32)

zlua.typeof / get_type_from_name 的选择

场景推荐
corlib 基元 / string / objectzlua.types.*
游戏程序集类型(DemoPoint2DCSharp.AC.Demo 类型表,或 zlua.typeof(...)
闭合泛型 / 数组类型表 → System.Typezlua.typeof(ListInt)(≡ C# typeof(List<int>)
单字符串解析(AQN / 泛型 / 数组)zlua.get_type_from_name(...)
泛型定义(未闭合 List\1`)类型表 + make_generic_type

Mono / Il2Cpp 支持

运行时支持
Mono
Il2Cpp

相关文档