Exemple #1
0
        public unsafe ulong this[int i]
        {
            [MethodImpl(MethodImplOptions.AggressiveInlining)]
            get
            {
                if (i != _uint64Count - 1 || _lastUInt64ByteCount == 8)
                {
                    return(BssomBinaryPrimitives.ReadUInt64LittleEndian(ref _us[i * 8]));
                }

                int   startPos = (_uint64Count - 1) * 8;
                ulong value1   = 0;
                Unsafe.CopyBlock(ref Unsafe.As <ulong, byte>(ref value1), ref _us[startPos], (uint)_lastUInt64ByteCount);
                return(BssomBinaryPrimitives.ReadRawUInt64LittleEndian(value1));
            }
        }