C# 将字节数组强制转换为对象数组

C# 将字节数组强制转换为对象数组,c#,c#-4.0,C#,C# 4.0,可能重复: 为什么 object h = new byte(); 可能及 object[] h = new byte[5]; 不是吗 如何将字节数组强制转换为对象数组 谢谢大家! 第一个示例框中有一个值 在第二个示例中,您尝试转换整个数组。那根本不管用。对象数组的每个元素都是一个对象变量。字节数组的每个元素都是一个字节变量。他们没有共同的代表——你就是做不到 您可以很容易地从字节数组创建新的对象数组,例如 object[] objects = bytes.Cast<object>

可能重复:

为什么

object h = new byte();
可能及

object[] h = new byte[5];
不是吗

如何将字节数组强制转换为对象数组

谢谢大家!

第一个示例框中有一个值

在第二个示例中,您尝试转换整个数组。那根本不管用。
对象
数组的每个元素都是一个
对象
变量。
字节
数组的每个元素都是一个
字节
变量。他们没有共同的代表——你就是做不到

您可以很容易地从字节数组创建新的对象数组,例如

object[] objects = bytes.Cast<object>().ToArray();

当您尝试在代码中强制转换数组时,强制转换失败,因为您正在将保存类型字节的数组强制转换为保存类型对象的数组;数组包含的类型不同。将值类型强制转换为类型对象时,您正在装箱(取消装箱将对象转换为值类型)<代码>对象h=新字节()是装箱。在数组代码中进行强制转换时,这不是装箱,这就是它失败的原因。

这与:
byte[] bytes = ...;
Array array = bytes;