基本数据类型
C#类型 | Lua类型 |
sbyte,byte,short,ushort,int,uint,double,char,float | number |
decimal | userdata |
long,ulong | userdata/lua_Integer(lua53) |
bytes[] | string |
bool | boolean |
string | string |
复杂数据类型复杂数据类
C#类型 | Lua类型 |
LuaTable | table |
LuaFunction | function |
class或者 struct的实例 | userdata,table |
method,delegate | function |
LuaTable:
C#侧指明从Lua侧输入(包括C#方法的输入参数或者Lua方法的返回值)LuaTable类型,则要求Lua侧为table。或者Lua侧的table,在C#侧未指明类型的情况下转换成LuaTable。
LuaFunction:
C#侧指明从Lua侧输入(包括C#方法的输入参数或者Lua方法的返回值)LuaFunction类型,则要求Lua侧为function。或者Lua侧的function,在C#侧未指明类型的情况下转换成LuaFunction。
LuaUserData:
对应非C# Managered对象的lua userdata。
class或者 struct的实例:
从C#传一个class或者struct的实例,将映射到Lua的userdata,并通过__index访问该userdata的成员
C#侧指明从Lua侧输入指定类型对象,Lua侧为该类型实例的userdata可以直接使用;如果该指明类型有默认构造函数,Lua侧是table则会自动转换,转换规则是:调用构造函数构造实例,并用table对应字段转换到c#对应值后赋值各成员。
method, delegate:
成员方法以及delegate都是对应lua侧的函数。
C#侧的普通参数以及引用参数,对应lua侧函数参数;C#侧的返回值对应于Lua的第一个返回值;引用参数和out参数则按序对应于Lua的第2到第N个参数。