这两个数组声明有什么区别?

Mou*_*yan 10 c# syntax

看来这两个声明是一样的:

int[] array1 = {11, 22, 33};
Run Code Online (Sandbox Code Playgroud)

int[] array2 = new int[] {11, 22, 33};
Run Code Online (Sandbox Code Playgroud)

但是new int[]第二个样本中这个部分的需求是什么 ?
它有所不同吗?

Jon*_*eet 11

在这种情况下没有区别 - 但第一种语法在声明变量时可用.从C#4规范部分12.6:

可以在字段声明,局部变量声明和数组创建表达式中指定数组初始值设定项.

("数组初始值设定项"是大括号中的位 - 数组创建表达式是您指定的形式new int[]或其他形式.)

当你没有声明局部变量或字段时(例如,如果你将参数传递给方法)你必须使用第二种形式,或者从C#3.0你可以使用隐式类型数组:

Foo(new[] { 1, 2, 3} );
Run Code Online (Sandbox Code Playgroud)