跳到主要内容

zlua.types

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

源码:ZLua~/lualib/zlualib.lua

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

完整常量表

Lua 键System 类型典型用途
zlua.types.voidSystem.Void仅签名场景(无参构造等)
zlua.types.boolSystem.Booleansignature、ref 槽
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、ref int
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

用法示例

方法签名

local sig = zlua.signature(zlua.types.int32, zlua.types.string)
local fn = zlua.get_method(CSharp.AC.Demo, "SomeMethod", sig, false)

ref 槽

local n = zlua.new_ref(zlua.types.int32, 5)

泛型闭合

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

zlua.typeof 的选择

场景推荐
corlib 基元 / string / objectzlua.types.*
游戏程序集类型(DemoPoint2Dzlua.typeof(CSharp.AC.Demo) 或类型表本身
泛型定义(未闭合 List\1`)类型表 + make_generic_type

Mono / Il2Cpp 支持

运行时支持
Mono
Il2Cpp MVP⚠️(部分 API 依赖 signature / typeof

相关文档