C#语言规范(7.6.10.4)说,有树种类的数组创建表达式:
new non-array-type [expression-list] rank-specifiersopt array-initializeropt
new array-type array-initializer
new rank-specifier array-initializer
第三个用于隐式类型化数组:
var foo = new[] { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
问题:在隐式类型化数组的情况下,是否有任何重要理由禁止显式设置数组大小?
与此语法相比,它看起来像不对称行为:
var foo = new int[3] { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
更新.
一点澄清.我可以看到显式设置数组大小和数组初始化程序组合的唯一优势是初始化程序长度的编译时检查.如果我声明了三个ints 的数组,初始化器必须包含三个ints.
我认为,隐式类型数组也有同样的优势.当然,使用这种优势或不使用是个人偏好.
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |