我已经知道byte[] b = new byte[8];
工作正常。但为什么byte[] b = new byte[8];
不起作用?
例如,byte b = new byte();
工作正常,因此数组样式也应该有效,但它没有。我对这个原因一无所知。有人可以解释一下吗?
答案 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。
我希望有帮助