Метод TryWriteBytes
TryWriteBytes(Span<byte>, value)
кодирует число в существующий буфер без
создания byte[]. При успехе возвращает
true; если Span короче нужного
размера - false и буфер не меняют.
Аналог с новым массивом -
GetBytes.
Синтаксис
bool ok = BitConverter.TryWriteBytes(span, 12345);
Пример
Давайте запишем int в буфер из
4 байт:
using System;
class Program
{
static void Main()
{
Span<byte> buf = stackalloc byte[4];
bool ok = BitConverter.TryWriteBytes(buf, 1);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
True
Пример
Давайте попробуем буфер из двух байт для
int:
using System;
class Program
{
static void Main()
{
Span<byte> buf = stackalloc byte[2];
bool ok = BitConverter.TryWriteBytes(buf, 1);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
False
Пример
Давайте после успешной записи прочитаем
ToInt32:
using System;
class Program
{
static void Main()
{
byte[] buf = new byte[4];
Span<byte> span = buf;
BitConverter.TryWriteBytes(span, 12345);
int res = BitConverter.ToInt32(buf, 0);
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Смотрите также
-
метод
GetBytes,
который выделяет новый массив -
метод
ToInt32,
который читает записанные байты -
IsLittleEndian,
которое задаёт порядок записи -
BitConverter,
класс сTryWriteBytes