Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的等价物是什么;C#NET中的结构包(fmt、v1、v2,…)?_C#_Python_C_Struct_Pack - Fatal编程技术网

Python的等价物是什么;C#NET中的结构包(fmt、v1、v2,…)?

Python的等价物是什么;C#NET中的结构包(fmt、v1、v2,…)?,c#,python,c,struct,pack,C#,Python,C,Struct,Pack,在C#.NET中,Python的等价物是什么?我在C中定义了以下结构# 并希望在Python应用程序中使用struct.unpack(“您可以将字段逐个写入到: 使用平台的端号,即x86/x64上的小端号 “c–char–长度为1–1字节的字符串”是c#中的一个字母 “i–int–integer–4字节”是C#中的一个字母 .NET Framework中没有内置类似于打包/解包的功能。1 1.当您在p/调用本机代码时,有。但您不是在p/调用本机代码。您可以将字段一个接一个地写入: 使用平台

在C#.NET中,Python的等价物是什么?我在C中定义了以下结构#


并希望在Python应用程序中使用
struct.unpack(“您可以将字段逐个写入到:

  • 使用平台的端号,即x86/x64上的小端号
  • “c–char–长度为1–1字节的字符串”是c#中的一个字母
  • “i–int–integer–4字节”是C#中的一个字母
.NET Framework中没有内置类似于
打包
/
解包的功能。1


1.当您在p/调用本机代码时,有。但您不是在p/调用本机代码。

您可以将字段一个接一个地写入:

  • 使用平台的端号,即x86/x64上的小端号
  • “c–char–长度为1–1字节的字符串”是c#中的一个字母
  • “i–int–integer–4字节”是C#中的一个字母
.NET Framework中没有内置类似于
打包
/
解包的功能。1


1.当您在p/调用本机代码时,有。但您不是在p/调用本机代码。

您还可以使用BinaryFormatter类来序列化对象的整个层次结构,或者只是一个简单的结构。您可能需要手动(逐字节)进行序列化或者使用非二进制格式,例如XML,使其独立于平台和语言


编辑:我没有注意到以后使用Python解包的请求。这不太可能与Python的解包函数一起工作。一般来说,我会犹豫是否使用库调用以二进制格式编写数据,以便在使用不同库编写的不同应用程序中使用。不保证一致性,并且规范可能会在未来。您最好使用独立于语言的标准。

您也可以使用BinaryFormatter类序列化整个对象层次结构,或者只序列化一个简单的结构。您可能需要手动(逐字节)或使用非二进制格式,例如XML,使其独立于平台和语言


编辑:我没有注意到以后使用Python解包的请求。这不太可能与Python的解包函数一起工作。一般来说,我会犹豫是否使用库调用以二进制格式编写数据,以便在使用不同库编写的不同应用程序中使用。不保证一致性,并且规范可能会在未来。您最好使用独立于语言的标准。

BinaryFormatter肯定会将对象序列化为字节,但不会序列化为易于在Python中反序列化的格式。哦,我应该仔细阅读。我没有注意到他想在Python中解包。BinaryFormatter肯定会将对象序列化为字节,但不会一种很容易在Python中反序列化的格式。哦,我应该仔细阅读。我没有注意到他想用Python解包。经过测试,我能够成功地使用Python的解包(格式、数据)解包我的C#struct。所以我使用了
BinaryWriter
MemoryStream
MemoryStream.ToArray()
。经过测试,我能够成功地使用Python的解包(格式、数据)来解包我的C#struct。因此我使用了
BinaryWriter
MemoryStream
MemoryStream.ToArray()
[StructLayout(LayoutKind.Sequential, Pack=1)]
    struct user {
        public char id;
        public int age; 
    };
User user = ...

using (BinaryWriter writer = ...)
{
    writer.Write((byte)user.id);
    writer.Write(user.age);
}