public class Lesson3
{
public int[] array = new int[]{1,2,3,4,5};
public List<int> list = new List<int>();
public Dictionary<int, string> dict = new Dictionary<int, string>();
}
Array
--实例化一个Lesson3类对象
local lesson = CS.Lesson3();
local array = lesson.array
--使用C#的方法获取数组长度,不要使用#
print(array.Length)
print(array[0])
--lua中的索引虽然是从1开始的,但访问C#数组时,索引仍然是从0开始的
--最大值要-1,是可以取到最大值的
for i = 0, array.Length - 1 do
print(array[i])
end
--Lua创建一个C#数组
--调用C#的Array类的静态方法CreateInstance来创建一个数组
local array2 = CS.System.Array.CreateInstance(typeof(CS.System.Int32), 5)
print("新建的数组:"..array2.Length)
List
local list = lesson.list
--调用成员方法用:!
list:Add(114514)
list:Add(1919810)
print("List的长度:"..list.Count)
for i = 0, list.Count - 1 do
print(list[i])
end
--Lua创建一个List
--老方法,不推荐
local list2 = CS.System.Collections.Generic["List`1[System.Int32]"]()
list2:Add(123)
print(list2[0])
--新方法(得到的是一个list类,需要实例化出来)
local List_String = CS.System.Collections.Generic.List(CS.System.String)
local list3 = List_String()
list3:Add("Hello")
print(list3[0])
Dictionary
local dict = lesson.dict
dict:Add(1, "马路米亚")
--遍历
for k,v in pairs(dict) do
print(k,v)
end
--Lua创建一个Dictionary
local Dict_String_Vector3 = CS.System.Collections.Generic.Dictionary(CS.System.String, CS.UnityEngine.Vector3)
local dict2 = Dict_String_Vector3()
dict2:Add("位置", CS.UnityEngine.Vector3.right)
for k,v in pairs(dict2) do
print(k,v)
end
--Lua中创建的字典,无法通过[]来访问
print(dict2["位置"]) --=> nil
--需要用get_Item方法来访问
print(dict2:get_Item("位置"))
print(dict2:TryGetValue("位置"))
--更改用set_Item方法
dict2:set_Item("位置", CS.UnityEngine.Vector3.up)
评论(0)
暂无评论