Ejemplo n.º 1
0
        public int GetMemorySize()
        {
            int res = BinarySerializeUtils.GetStringMemorySize(Name);

            res += 1; //IsArray

            //2 байта - количество значений
            res += 2;
            //значения:
            for (int i = 0; i < _values.Count; i++)
            {
                IKeyValue val = _values[i];
                res += val.GetMemorySize();
            }

            //2 байта - количество подключей
            res += 2;
            //значения:
            for (int i = 0; i < _keys.Count; i++)
            {
                res += _keys[i].GetMemorySize();
            }

            return(res);
        }
Ejemplo n.º 2
0
        public int GetMemorySize()
        {
            int res = 1; //byte for type

            switch (VariantType)
            {
            case EValueType.Bool: return(res + sizeof(bool));

            case EValueType.Byte: return(res + sizeof(byte));

            case EValueType.Short: return(res + sizeof(short));

            case EValueType.UShort: return(res + sizeof(ushort));

            case EValueType.Int: return(res + sizeof(int));

            case EValueType.UInt: return(res + sizeof(uint));

            case EValueType.Long: return(res + sizeof(long));

            case EValueType.ULong: return(res + sizeof(ulong));

            case EValueType.Float: return(res + sizeof(float));

            case EValueType.Double: return(res + sizeof(double));

            case EValueType.String: return(res + BinarySerializeUtils.GetStringMemorySize((string)_objref));
            }

            throw new ArgumentException($"Unknow type of value: {VariantType}");
        }