|
1
95
尽管也要注意你
可以
想查一下
注意如果你这样做
反复地
您可能希望通过两种移位操作自己编写数组来避免所有这些短期数组分配(
|
|
|
2
33
马克的回答当然是正确的。但因为他提到了轮班操作员和不安全代码作为替代。我想分享一个不太常见的选择。使用结构与
下面是一个可以用来获取Int32数据类型的组件字节的结构示例,好处是它是双向的,您可以操作字节值并查看对Int的影响。
现在可以如下使用
当然,不变性警察可能不会对最后的可能性感到兴奋:) |
|
3
2
这可能不是,但如果你序列化了很多原始类型或POD结构, Google Protocol Buffers for .Net 可能对你有用。这解决了上面提到的endianness问题@Marc,以及其他一些有用的特性。 |
|
4
1
如果你是从谷歌来的
另一个老问题的答案是John Skeet的库,它有一些工具可以让您直接将原始数据类型写入具有索引偏移量的字节[]。远胜于
Older thread discussing this issue here John Skeet's Libraries are here
只需下载源代码并查看
|
|
|
5
0
这里的大多数答案要么是“不安全的”,要么是不安全的。BitConverter不安全。 因此,以 here (见PZahra的文章)我做了一个小小的安全版本,当BitConverter.IsLittleEndian==true时,只需反向读取字节数组
它返回:
它是进入字节数组的十六进制。 |