Lua调用C#语言五(ref、out)

Lua代码

print("*****************Lua调用C# ref相关知识点******************");
Lesson5=CS.Lesson5;
local obj = Lesson5();


--ref参数 会以多返回值的形式返回给lua
--如果函数存在返回值 那么第一个值就是该返回值
--之后的返回值 就是ref的结果 从左到右一一对应
--ref参数 相当于传入一个默认值 占位置(ref 不能省略,可以用0占位置)
--a相当于返回值
--b 第一个ref
--c 第二个ref
local a,b,c=obj:RefFun(1,0,0,1);
print(a);--100
print(b);--2
print(c);--0

print("*****************Lua调用C# out相关知识点******************");

--out参数 会以多返回值的形式返回lua
--如果函数存在返回值,第一个为函数返回值
--之后的返回值 就是out的结果 从左到右一一对应
--out参数 不需要传入占位置的值(out可以省略)

local a,b,c = obj:OutFun(20,30);
print(a);--200
print(b);--20
print(c);--30


print("*****************Lua调用C# 混合相关知识点******************");
--混合使用时 综合上面的规则
--ref需要占位置 out可以省略
--第一个为函数返回值 之后从左到右依次对应ref或者out
local a,b,c = obj:RefOutFun(20,1);
print(a);--300
print(b);--200
print(c);--400


C#代码

#region Lesson5 ref out的使用
public class Lesson5
{
    public int RefFun(int a, ref int b, ref int c, int d)
    {
        b = a + d;
        c = a - d;
        return 100;
    }

    public int OutFun(int a, out int b, out int c, int d)
    {
        b = a;
        c=d;
        return 200;
    }

    public int RefOutFun(int a,out int b,ref int c)
    {
        b = a * 10;
        c = a * 20;
        return 300;
    }
}
#endregion
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值