Как преобразовать массивы UInt32[] и Int32[] в байтовые массивы?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как преобразовать массивы UInt32[] и Int32[] в байтовые массивы?

Сообщение Anonymous »

Пытаюсь создать функцию, которая преобразует объекты в байтовые массивы (без дополнительных затрат/метаданных, таких как BinaryFormatter). Думаю, меня устраивает следующий код, за исключением его способности преобразовывать массивы UInt32[] и массивы Int32[] в массив байтов.

Код: Выделить всё

private byte[] ObjectToByteArray(object obj)
{
string dataType = obj.GetType().Name;
switch (dataType)
{
case "Byte[]": // an array of bytes
return (byte[])obj;
case "String": // a null-terminated ASCII string
return Encoding.ASCII.GetBytes((string)obj);
case "UInt16": // an array of unsigned short (16-bit) integers
return BitConverter.GetBytes((ushort)obj);
case "UInt32": // an array of unsigned long (32-bit) integers
return BitConverter.GetBytes((uint)obj);
case "UInt32[]": // an array of pairs of unsigned long (32-bit) integers
//return BitConverter.GetBytes((ushort)obj);
return null;
case "Int32": // an array of signed long (32-bit) integers
return BitConverter.GetBytes((int)obj);
case "Int32[]": // an array of pairs of signed long (32-bit) integers
//return BitConverter.GetBytes((int)obj);
return null;
default:
throw new Exception($"The type of value ({dataType}) is not supported.");
}
}
Я думал о том, чтобы сделать что-то вроде простого цикла для каждых 4 байтов и продолжать добавлять их в массив байтов, но не был уверен, сработает ли это или даже будет ли это лучшим подходом. Я даже не уверен, что мой нынешний метод — лучший подход к тому, что я уже сделал. Кажется, все, что я нашел в Интернете, сбивает меня с толку и кружит голову при преобразовании типов данных.

Подробнее здесь: https://stackoverflow.com/questions/791 ... yte-arrays
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать массивы UInt32[] и Int32[] в байтовые массивы?
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как преобразовать число в int8, int16, int32, uint8, uint16 или uint32
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Типы UInt32 и UInt64 не могут быть выведены из использования при использовании вместе с типом Int32 в универсальном мето
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Разделить wav-файл на байтовые массивы с помощью NAudio
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Где используются байтовые массивы Python?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»