Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要使用;新";C#数组的语法?_C#_Arrays_Performance_Syntax_New Operator - Fatal编程技术网

为什么要使用;新";C#数组的语法?

为什么要使用;新";C#数组的语法?,c#,arrays,performance,syntax,new-operator,C#,Arrays,Performance,Syntax,New Operator,从中可以看出,在C#中初始化数组有四种允许的方法。摘自公认的答案: string[] array = new string[2]; // creates array of length 2, default values string[] array = new string[] { "A", "B" }; // creates populated array of length 2 string[] array = { "A" , &

从中可以看出,在C#中初始化数组有四种允许的方法。摘自公认的答案:

string[] array = new string[2]; // creates array of length 2, default values
string[] array = new string[] { "A", "B" }; // creates populated array of length 2
string[] array = { "A" , "B" }; // creates populated array of length 2
string[] array = new[] { "A", "B" }; // created populated array of length 2
链接的答案说明,除了第三个表达式外,您还可以使用
var
关键字使上述表达式更简洁:

var array = new string[2]; // creates array of length 2, default values
var array = new string[] { "A", "B" }; // creates populated array of length 2
string[] array = { "A" , "B" }; // creates populated array of length 2
var array = new[] { "A", "B" }; // created populated array of length 2

我的问题是:为什么要对数组使用
new
语法?使用
var-array=new-string[]{“A”,“B”}
而不是
string[]array={“A”,“B”}
,对性能有什么好处吗?

因为使用
new
可以指定数组类型,也就是说,您有这个代码

var array = new[] { 1, 3, 5 }

这将是int,但您希望它是
字节数组
,因此只能使用new。此外,您还可以将数组声明为类字段
string[]array
,它是构造函数中某个地方的初始化,因此您将只看到
array={“A”,“B”}
,它不清楚

可能我不知道将向数组添加什么数据。
string[]array={“A”,“B”}仍然在您的示例中,没有任何优势,这就是为什么他们进行了更改,在不使用
new
的情况下对其进行初始化。通常,当一种语言有多种方法来实现相同的目标时,更简单的形式会出现在后面。不要期望性能上的差异,仅仅是开发人员的生产力上的差异。这并不是一个真正的优点/缺点,首先,是
new
,然后是较新的c#版本,开发人员想,为什么我们不从数组初始化中删除
new
关键字(为了简单/减少代码),然后他们删除了它。就是这样。是的,但正如我所说,int[]和同一数组的new声明可以位于完全不同的代码位置,并且您没有介绍这个示例-假设您在文件的开头定义了数组,而构造函数位于第10000行。您根本无法确定回答这个问题的答案是什么。因为原因可能因当前的情况和代码而异