/// <summary> /// 初始化LuaValue对象 /// </summary> /// <param name="decoder">对象解码器</param> public LuaValue(LuaObjectDecoder decoder) : base(decoder) { int contextId = decoder.readInt32(); _context = LuaContext.getContext(contextId); _tableId = decoder.readString(); _type = (LuaValueType)decoder.readInt16(); _value = null; switch (_type) { case LuaValueType.Integer: _value = decoder.readInt32(); break; case LuaValueType.Boolean: _value = decoder.readByte(); break; case LuaValueType.Number: _value = decoder.readDouble(); break; case LuaValueType.Data: _value = decoder.readBytes(); break; case LuaValueType.String: _value = decoder.readString(); break; case LuaValueType.Array: _value = readArrayList(decoder); break; case LuaValueType.Map: _value = readHashtable(decoder); break; case LuaValueType.Function: _value = decoder.readObject() as LuaFunction; break; case LuaValueType.Ptr: _value = decoder.readObject() as LuaPointer; break; case LuaValueType.Tuple: _value = decoder.readObject() as LuaTuple; break; case LuaValueType.Object: _value = decoder.readObject(); break; } }
/// <summary> /// 初始化LuaValue对象 /// </summary> /// <param name="decoder">对象解码器</param> public LuaValue(LuaObjectDecoder decoder) { _type = (LuaValueType)decoder.readInt16(); _value = null; switch (_type) { case LuaValueType.Integer: _value = decoder.readInt32(); break; case LuaValueType.Boolean: _value = decoder.readByte(); break; case LuaValueType.Number: _value = decoder.readDouble(); break; case LuaValueType.Data: _value = decoder.readBytes(); break; case LuaValueType.String: _value = decoder.readString(); break; case LuaValueType.Array: _value = readArrayList(decoder); break; case LuaValueType.Map: _value = readHashtable(decoder); break; case LuaValueType.Object: { _value = decoder.readObject(); break; } } }