gpt4 book ai didi

c# - int[] 到 byte[],我忘记了什么吗?

转载 作者:行者123 更新时间:2023-12-01 22:54:47 24 4
gpt4 key购买 nike

这未经测试,因为我需要编写更多代码。但这是正确的吗?我觉得我错过了一些东西,比如这可以写得更好。最后我需要关闭吗?我应该刷新任何东西吗(如果我执行 close(),我会假设不刷新)?

Byte[] buffer;
using (var m = new MemoryStream())
{
using (var binWriter = new BinaryWriter(m))
{
foreach (var v in wordIDs)
binWriter.Write(v);
binWriter.Close();
}
buffer = m.GetBuffer();
m.Close();
}

最佳答案

您不需要 .Close() 调用(using block 生成的自动 .Dispose() 会处理这些)。

此外,您需要在 MemoryStream 上使用 .ToArray(),而不是 .GetBuffer()。 GetBuffer() 返回底层缓冲区,无论使用了多少。 ToArray() 返回一个完美长度的副本。

如果您使用它与另一个程序通信,请确保您和它在字节顺序(也称为字节序)上达成一致。如果您使用网络字节顺序,则需要翻转字节顺序(使用 IPAddress.HostToNetworkOrder() 之类的方法),因为网络字节顺序是大尾数,而 BinaryWriter 使用小尾数。

关于c# - int[] 到 byte[],我忘记了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/750105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com