print("*********Lua調用C# 數組相關知識點***********")
local obj = CS.Lesson3()
--Lua使用C#數組相關知識
--長度 userdata
--C#怎么用 lua就怎么用 不能使用#去獲取長度
print(obj.array.Length)
--訪問元素
print(obj.array[0])
--遍歷要注意 雖然lua中索引從1開始
--但是數組是C#那邊的規則 所以 還是得按C#的來
--注意最大值 一定要減1
for i=0,obj.array.Length-1 do
print(obj.array[i])
end
--Lua中創建一個C#的數組 Lua中表示數組和List可以用表
--但是我要使用C#中???
--創建C#中的數組 使用 Array類中的靜態方法即可
local array2 = CS.System.Array.CreateInstance(typeof(CS.System.Int32), 10)
print(array2.Length)
print(array2[0])
print(array2[1])
print(array2)
print("*********Lua調用C# list相關知識點***********")
--調用成員方法 用冒號!!!!!!
obj.list:Add(1)
obj.list:Add(2)
obj.list:Add(3)
--長度
print(obj.list.Count)
--遍歷
for i=0,obj.list.Count - 1 do
print(obj.list[i])
end
print(obj.list)
--在Lua中創建一個List對象
--老版本
local list2 = CS.System.Collections.Generic["List`1[System.String]"]()
print(list2)
list2:Add("123")
print(list2[0])
--新版本 >v2.1.12
--相當於得到了一個 List<string> 的一個類別名 需要再實例化
local List_String = CS.System.Collections.Generic.List(CS.System.String)
local list3 = List_String()
list3:Add("5555555")
print(list3[0])
print("*********Lua調用C# dictionary相關知識點***********")
--使用和C#一致
obj.dic:Add(1, "123")
print(obj.dic[1])
--遍歷
for k,v in pairs(obj.dic) do
print(k,v)
end
--在Lua中創建一個字典對象
--相當於得到了一個 Dictionary<string, Vector3> 的一個類別名 需要再實例化
local Dic_String_Vector3 = CS.System.Collections.Generic.Dictionary(CS.System.String, CS.UnityEngine.Vector3)
local dic2 = Dic_String_Vector3()
dic2:Add("123", CS.UnityEngine.Vector3.right)
for i,v in pairs(dic2) do
print(i,v)
end
--在Lua中創建的字典 直接通過鍵中括號得 得不到 是nil
print(dic2["123"])
print(dic2:TryGetValue("123"))
--如果要通過鍵獲取值 要通過這個固定方法
print(dic2:get_Item("123"))
dic2:set_Item("123", nil)
print(dic2:get_Item("123"))