XLua Lua访问C#中的方法(二)访问多个参数输入,多个返回值的方法
2019-04-14 15:34
1241 查看
访问C#复杂函数 对于参数,Lua会从左到右取C#函数中的普通参数或者ref参数依次作为自己的参数 对于返回值,Lua会从左到右取C#函数中的返回值、ref参数或者out参数依次作为自己的返回值 例如,对于下面的函数ComplexFunction
using UnityEngine; using XLua; [LuaCallCSharp] public class ComplexClass { //具有三个返回值的方法(return ref out) //当Lua调用的这个方法的时候,out关键字不作为输入参数,所以这个方法只需传入四个参数 //1、对于参数,Lua会从左到右取C#函数中的普通参数或者ref参数依次作为自己的参数 //2、 对于返回值,Lua会从左到右取C#函数中的返回值、ref参数或者out参数依次作为自己的返回值 public string ComplexFunction(int arg0, ref int arg1, string arg2, out string arg3, Arg arg4) { Debug.Log("=========C#========="); Debug.Log("arg0:" + arg0); Debug.Log("arg1:" + arg1); Debug.Log("arg2:" + arg2); Debug.Log("Arg:" + arg4); arg1+=1000;//改变了ref int arg1 传递进来的参数, arg3 = "3(out string return)"; return "ComplexFunction return.";//在这个方法中,return为作为第一个返回值,ref第二个,out 第三个 } } [LuaCallCSharp] public class Arg { public int arg0; public string arg1; public override string ToString() { return string.Format("arg0:{0} arg1:{1}", arg0, arg1); } } 按照上面的原则,首先从左到右检索函数ComplexFunction的普通参数或ref参数 结果为:arg0,arg1,arg2,param 所以在Lua中调用时需要传入以上四个参数 接下来从左到右检索函数的返回值、ref参数或者out参数 结果为:ComplexFunction函数的返回值,arg1,arg3 所以在Lua中将返回上述4个值
print('启动了Lua') function init() print("执行了Lua的全局方法init")--无参数的方法 CreatUnityObj() end function CreatUnityObj() local complexClass=CS.ComplexClass() --根据规则传入了4个参数,out关键字不作为传入的参数, --返回值接收,先return 在根据传入参数out,ref从左往右的原则 local ret,argRef,argOut=complexClass:ComplexFunction( 100,200,'第三个参数',{arg0=400,arg1='Arg参数'} ) print('----------Lua Print-------') print('ret:',ret) print('argRef:',argRef) print('argOut:',argOut) end
``
相关文章推荐
- C# 方法、方法参数和返回值、属性 、索引器 、访问修饰符
- 基础_C# 方法、方法参数和返回值、属性 、索引器 、访问修饰符 访问修饰符
- XLua Lua访问C#中的方法(四)可变参数与默认参数
- C#调用存储过程详解(带返回值、参数输入输出等)
- c#带参数和返回值的函数 开启线程调用的方法
- XLua Lua访问C#中的方法(三)操作符重载和函数重载
- XLua Lua访问C#中的方法(四)访问枚举
- C#调用C++ 平台调用P/Invoke 结构体--输入输出参数、返回值、返出值、结构体数组作为参数【五】
- 写一方法用来计算1+2+3+...n,其中n作为参数输入,返回值可以由方法名返回,也可以由参数返回
- C# 通过反射获取MVC Controller里的类名,方法名,参数列表,返回值类型,Description描述,自定义Attribute
- C#为什么支持协变的参数只能用于方法的返回值?支持逆变的参数只能用于方法参数?
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- SQL Server 第三堂课,学习数据库函数。跟C#语言异曲同工,同样是由输入参数,输出参数,函数体,返回值四要素组成,不同的是语法和写法。掌握知识的关键在与学好C#语言的函数
- XLua Lua访问C#中的方法(四)访问委托、事件
- c# 匿名方法传参数 和有返回值
- C# WebAPI 传递可选参数及指定访问那个接口的方法。
- Lua中访问C#中的属性和方法-特殊情况-带有out和ref关键字
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- JavaScript页面调用C#后台方法或访问参数
- 【C#】40. 线程参数传递的三种方法