为什么不是字节[] b =新字节[8]();工作?

时间:2015-06-28 11:23:32

标签: c# arrays

我已经知道byte[] b = new byte[8];工作正常。但为什么byte[] b = new byte[8];不起作用?

例如,byte b = new byte();工作正常,因此数组样式也应该有效,但它没有。我对这个原因一无所知。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

数组没有构造函数,当您创建一个数组时,您正在创建一个列表或对象集合,例如,构成具有构造函数的数组的对象就是这样。

var b = new byte[8];

将创建一个包含byte类型的8个对象的数组,其中数组的每个元素都将为null,使用构造函数表示法无效,但您可以使用初始化符号,例如。

var b = new byte[8] { new byte(), new byte(), ... };

使用此表示法会将类型为byte的8个元素的数组初始化为byte的新实例

简而言之var b = new byte()是一个实例化变量byte并调用对象的构造函数,var b = new byte[8]正在创建一个 n 元素的数组键入byte,每个都初始化为null。

我希望有帮助