求教关于内嵌多重数组和结构体的结构体与byte字节流转换的问题 结构二维数组bytes字节流 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题是转成的byte[]要哪里用,需要的格式是什么,如果没有定义,那可以随便转换 +1C++是肯定没有直接的转换支持。你可以自己定义协议,关键是使用方也要能理解,比如转成{ nParam : [ [1,2,3], [4,5,6,9], [8] ], struc: [1,3,5,7]} 简单点可以用BinaryFormatter把对象序列化成二进制数据,复杂点可以自己定义一种协议来转换。 如果转换的目的是跨进程、跨平台可以通讯,或者保存(例如写入配置文件),比较符合最近4、5年的做法是使用 json 格式,比较符合10年前的做法是使用 xml 格式。你可以搜素一下,许多 json 类库的处理效率,不必二进制序列化/反序列化慢多少。而 json 的好处则很多。比如说跨平台,比如说内部属性都有哪些、排列先后次序、属性占内容的大小,等等,都可以灵活变化,而不会影响解析(甚至当你修改实体模型定义以后,原始的数据多出或者少了属性,反序列化起来也没有问题)。至于说“转换成 byte[]对象”,你想干什么呢?凡是传输的,当然都是byte[]对象。比如说你把一个字符串写入文件,文件里当然是一个一个字节的。字符串跟byte[]之间的转换,这不应该成为什么问题(默认地,你可以总是采用 utf8 编码来转换)。 二进制字节流是用来通过UDP协议传送至服务器的,此时还能直接转换么,服务器段解析是用的c++语言。 说过了,所有东西都是通过byte流输入输出的。不要纠结什么“直接转换”的问题,你必须会自己调用几种序列化/反序列化类库,或者干脆自己写上几十行代码来解析数据流。c++语言在“极简单的struct和byte[]之间的转换”方法,把程序员弄傻了。 本人疏忽,结构体是定义在c#语言和VS2008工程下。对于内嵌一维数组的结构体,我用marshal类提供的方法完成转换,对于内嵌二维数组的结构体还能用么 说过了,所有东西都是通过byte流输入输出的。不要纠结什么“直接转换”的问题,你必须会自己调用几种序列化/反序列化类库,或者干脆自己写上几十行代码来解析数据流。c++语言在“极简单的struct和byte[]之间的转换”方法,把程序员弄傻了。+1如果你只会使用union这种自动转换,还是赶紧恶补基础不要老纠结什么"直接"转换 .net 使用access数据库文字超出“备注”类型,如何使用“OLE对象”类型存储 下面这段HTTP的代码怎么用HttpWebRequest类实现? 如何用代码执行cab文件?(立即给分) 有没有人做过财务分析系统?都用的什么技术,给个思路 C#的两个问题,新人先谢谢大家 C#如何做统计对比 一个关于类的问题,高手请进(急,在线等待) 这是什么错误信息?why? 如何取消DataGrid的编辑显示状态 送分了!!!messagebox.show("adfasdsad")要用它的话,要引入什么空间呢 C# 如何获取远程服务器用户的信息? 关于C#打开指定文件夹的问题
你可以自己定义协议,关键是使用方也要能理解,比如转成
{
nParam : [
[1,2,3],
[4,5,6,9],
[8]
],
struc: [1,3,5,7]
}
如果转换的目的是跨进程、跨平台可以通讯,或者保存(例如写入配置文件),比较符合最近4、5年的做法是使用 json 格式,比较符合10年前的做法是使用 xml 格式。你可以搜素一下,许多 json 类库的处理效率,不必二进制序列化/反序列化慢多少。而 json 的好处则很多。比如说跨平台,比如说内部属性都有哪些、排列先后次序、属性占内容的大小,等等,都可以灵活变化,而不会影响解析(甚至当你修改实体模型定义以后,原始的数据多出或者少了属性,反序列化起来也没有问题)。至于说“转换成 byte[]对象”,你想干什么呢?凡是传输的,当然都是byte[]对象。比如说你把一个字符串写入文件,文件里当然是一个一个字节的。字符串跟byte[]之间的转换,这不应该成为什么问题(默认地,你可以总是采用 utf8 编码来转换)。
说过了,所有东西都是通过byte流输入输出的。不要纠结什么“直接转换”的问题,你必须会自己调用几种序列化/反序列化类库,或者干脆自己写上几十行代码来解析数据流。c++语言在“极简单的struct和byte[]之间的转换”方法,把程序员弄傻了。
对于内嵌一维数组的结构体,我用marshal类提供的方法完成转换,对于
内嵌二维数组的结构体还能用么
说过了,所有东西都是通过byte流输入输出的。不要纠结什么“直接转换”的问题,你必须会自己调用几种序列化/反序列化类库,或者干脆自己写上几十行代码来解析数据流。c++语言在“极简单的struct和byte[]之间的转换”方法,把程序员弄傻了。
+1
如果你只会使用union这种自动转换,还是赶紧恶补基础
不要老纠结什么"直接"转换