コード例 #1
0
ファイル: System_Array.cs プロジェクト: randomize/ERP_Coding
    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);
    }
コード例 #2
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);
    }