コード例 #1
0
ファイル: LuaVMDB.cs プロジェクト: mangodager/smartx-dotnet
        public TValue Get(string table, int index)
        {
            TValue currValue   = null;
            string table_index = $"{table}_#_{index}";

            if (currDic.TryGetValue(table_index, out currValue))
            {
                return(currValue);
            }
            if (copyDic.TryGetValue(table_index, out currValue))
            {
                return(currValue);
            }

            currValue = dbList.Get(table, index);

            // 深度复制
            var sliceOld = new Slice();

            sliceOld.obj = currValue;

            var sliceNew = JsonHelper.FromJson <Slice>(JsonHelper.ToJson(sliceOld));

            copyDic.Remove(table_index);
            copyDic.Add(table_index, sliceNew.obj);

            return(sliceNew.obj);
        }