当函数中有out 或者ref 参数时 ,out 参数和ref 参数和函数的返回值一起返回
并且调用的时候,out 参数不需要传入
c# 代码
namespace MyLuaInterface
{
class Program
{
public string name = "xiaowu";
public void testMethod() {
Console.WriteLine("testMethod");
}
public void testout(string name,out int count)
{
Console.WriteLine(name);
count = name.Length;
}
public void testref(string name, ref int count)
{
Console.WriteLine(name);
Console.WriteLine(count);
count = name.Length;
}
static void Main(string[] args)
{
Lua lua = new Lua();
lua.DoFile("script.lua");
Console.ReadKey();
}
}
}
lua代码
-- 访问类里面的方法和字段
luanet.load_assembly("MyLuaInterface");
Program = luanet.import_type("MyLuaInterface.Program")
program = Program()
program:testMethod()
print(program.name)
--[[
当函数中有out 或者ref 参数时 ,out 参数和ref 参数和函数的返回值一起返回
并且调用的时候,out 参数不需要传入
]]--
luanet.load_assembly("MyLuaInterface");
luanet.import_type("MyLuaInterface.Program");
program =Program()
-- 这里会有两个返回值 第一个是nil 第二个是out 的返回值
void, count = program:testout("hello world")
print(void,count)
luanet.load_assembly("MyLuaInterface");
luanet.import_type("MyLuaInterface.Program");
program =Program()
void , count = program:testref("hello world",16)
print(void,count)