【XLua】010-C#访问Lua中的table:Dictionary<>与List<>

【XLua】010-C#访问Lua中的table:Dictionary<>与List<>_第1张图片

【XLua】010-C#访问Lua中的table:Dictionary<>与List<>_第2张图片

通过Dictionary<>与List<>访问table

  • 1、Lua脚本代码
person={
name="fex",age="22",12,12,13,
eat=function(self,a,b)   --声明方法1:self为该表自身的参数,类似C#中this
    print(a+b)
    print("我吃了")
end

}
--[[
--声明方法2:
function person:eat(a,b)
    print(a+b)
end

--声明方法3:
function person.eat(self,a,b)
    print(a+b)
end
--]]

  • 2、C#脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

public class _004_CsharpCallLua : MonoBehaviour
{

    private LuaEnv env;

    void Start()
    {
        env = new LuaEnv();

        env.DoString("require 'CSharpCallLua'");

 
        //3.通过Dictionary<> 与 List<>
        Dictionary dict = env.Global.Get>("person");
        foreach(string key in dict.Keys)
        {
            print(key + ":" + dict[key]);
        }

        print("-------------");
        List list = env.Global.Get>("person");
        foreach(object o in list)
        {
            print(o);
        }

    }

    private void OnDestroy()
    {
        env.Dispose();
    }

}
 
 
  • 3、输出结果:

【XLua】010-C#访问Lua中的table:Dictionary<>与List<>_第3张图片
img.jpg

注意:

1.使用Dictionary<>与List<>方式比较轻量级,不用声明类与接口

2.使用Dictionary<>可以访问table中带有key的元素

3.使用List<>可以访问到table中的没有key的单独元素

4.Dictionary中的具体键值类型由实际需求而定,List<>也是如此

5.通常将Dictionary与List<>结合使用访问table中的所有元素

你可能感兴趣的:(【XLua】010-C#访问Lua中的table:Dictionary<>与List<>)