public override string ToString()
        {
            EValueDataType datatype = (EValueDataType)(DataType & 0x00FFFF);
            EValueDataSize datasize = (EValueDataSize)(DataType & 0xFF0000);

            return($"<{_ValTypeString()} [{ValueType.ToString()}] ({datatype.ToString()},{datasize.ToString()})>");
        }
 /// <summary>
 /// Constructs parameter value of value type (non-literal)
 /// </summary>
 /// <param name="value"></param>
 /// <param name="datatype"></param>
 /// <param name="datasize"></param>
 /// <param name="size"></param>
 public ParameterResolverValue(
     object value,
     EValueDataType datatype,
     EValueDataSize datasize = EValueDataSize.Normal,
     uint reserved           = 0,
     uint size = 0)
 {
     Value    = value;
     DataType = (uint)datatype | (uint)datasize | reserved;
     if (value is ICollection && reserved == 0 && (DataType & (uint)EValueDataType.AdvancedMask) == 0)
     {
         DataType |= (uint)EValueDataType.Collection;
     }
     DataSize  = size;
     ValueType = EResolverValueType.ValueType;
 }