0
У меня есть struct abc
, и я хочу скопировать байты в структурную переменную. Подобно memcpy в C/C++. Я получаю байты над сокетом, и они являются байтами той же переменной struct abc
.Как скопировать байты в переменную struct в C#?
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct abc
{
public int a;
public int b;
public float c;
public char[] d; //30 size
}
Это, в основном, хрупкий подход - вы полагаетесь, например, на то, что обе машины являются одинаковыми. Я думаю, вам понадобится также массив символов, который будет «исправлен». Я бы * настоятельно рекомендовал против использования измененных структур, подобных этому, в целом, и определенно против предположения, что представление в памяти на одной машине будет соответствовать другому. –
Посмотрите на методы 'Marshal.PtrToStructure()' и 'Marshal.StructureToPtr()' –
Хотя копирование байтов выполняется быстрее, подумайте о том, чтобы использовать сериализацию/десериализацию для обеспечения согласованности данных при их транспортировке. – Sinatr