private static int __index_Array(ILuaState L) { LuaTypes luaType = L.Type(2); if (luaType == LuaTypes.LUA_TNUMBER) { System.Array obj = L.ChkUserDataSelf(1, CLASS) as System.Array; if (obj == null) { L.L_Error("trying to index an invalid Array reference"); return(0); } int index = L.ToInteger(2); if (index >= obj.Length) { L.L_Error(string.Format("array index out of bounds: {0}/{1}", index, obj.Length)); return(0); } object val = obj.GetValue(index); if (val == null) { L.L_Error(string.Format("array index {0} is null", index)); return(0); } L.PushAnyObject(val); return(1); } else if (luaType == LuaTypes.LUA_TSTRING) { return(MetaMethods.__index(L)); } L.L_Error(string.Format("unknown key for Array, got {0}", luaType)); return(0); }
private static int __index_IList(ILuaState L) { LuaTypes luaType = L.Type(2); if (luaType == LuaTypes.LUA_TNUMBER) { IList obj = L.ChkUserDataSelf(1, META_TABLE) as IList; if (obj == null) { L.L_Error("trying to index an invalid IList reference"); return(0); } int index = L.ToInteger(2); if (index >= obj.Count) { L.L_Error(string.Format("index out of bounds: {0}/{1}", index, obj.Count)); return(0); } object val = obj[index]; if (val == null) { L.L_Error(string.Format("index {0} is null", index)); return(0); } L.PushAnyObject(val); return(1); } else if (luaType == LuaTypes.LUA_TSTRING) { return(MetaMethods.__index(L)); } L.L_Error(string.Format("unknown key for IList, got {0}", luaType)); return(0); }