关于c#:string数组初始化

string Array initialization

本问题已经有最佳答案,请猛点这里访问。

我有新的数组初始化如下:

1
2
string[] someNames = new string[] {"John","Bryan","Annete","Mathiew","Joseph","Donald","Tom" };
string[] someNames = {"John","Bryan","Annete","Mathiew","Joseph","Donald","Tom" };

有什么区别?两者都给出了相同的结果。我以为第二个会出错。为什么两者都有效,哪个更合适?


在第一种情况下,您显式地提供数组元素的类型。但是,C编译器可以通过分析所提供的数据来确定数组元素的类型。第二个例子显示了这个特性。

两个初始值设定项之间绝对没有区别。选择一种样式,并在整个代码库中使用它来保持一致性。


没有真正的区别。两个都能工作,都能给你同样的东西。我会用后者,因为打字少,看东西少。简单总是一个好处。

更深层的原因是,后一种方式只是第一种被"句法糖"所隐藏的方式。汇编下来就没有区别了。