将字节数组转换为对象数组

3

1
这是相关的:https://dev59.com/Jmox5IYBdhLWcg3wl1X4 - valentinas
2个回答

8
第一个示例是将单个值打包。
第二个示例是尝试转换整个数组。这是不可行的。对象数组的每个元素都是对象变量。字节数组的每个元素都是字节变量。它们没有共同的表示——你不能这么做。
你可以轻松地从字节数组创建一个新的对象数组,例如:
object[] objects = bytes.Cast<object>().ToArray();

但是你不能将字节数组当作一个对象数组来处理。

另一种方法是可以使用 System.Array 类型,它与 byte[] 兼容。这有帮助吗?

byte[] bytes = ...;
Array array = bytes;

2

当你尝试将数组转换为代码中的类型时,转换会失败,因为你正在将一个包含字节类型的数组转换为一个包含对象类型的数组;数组所持有的类型不同。将值类型转换为对象类型时,就是装箱(拆箱将对象转换为值类型)。object h = new byte(); 就是装箱。当你在数组代码中进行转换时,那就不是装箱,这就是为什么它失败的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接