unsafe public float GetSingle(int offset)
{
byte[] buffer = _buffer;
float value;
byte* pb = (byte*)&value;
DiagnosticUtility.DebugAssert(sizeof(float) == 4, "");
pb[0] = buffer[offset + 0];
pb[1] = buffer[offset + 1];
pb[2] = buffer[offset + 2];
pb[3] = buffer[offset + 3];
return value;
}