Код: Выделить всё
internal struct WriteBuffer64
{
private const int INLINE_BUFFER_SIZE = 64;
private unsafe fixed byte buffer[INLINE_BUFFER_SIZE];
private int used;
public unsafe Span GetWriteSpan(int toWrite)
{
if (used + toWrite > INLINE_BUFFER_SIZE)
throw new Exception(...);
int offset = used;
used += toWrite;
return MemoryMarshal.CreateSpan(ref buffer[offset], toWrite);
}
// ...
}
А как насчет Span? Способен ли он интерпретировать это как ссылку на управляемый объект? В более общем плане, как работает магия со ссылками на управляемые объекты в Spans?
Подробнее здесь: https://stackoverflow.com/questions/792 ... truct-to-u
Мобильная версия