定义变量的正确方法是什么?

时间:2015-11-11 11:48:20

标签: c#

为什么要定义

nrow == ncol == 1

什么时候可以这样定义?

int[] array = new int[] { 1, 2, 3 };

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

感觉喜欢冒险回答但是......

来自C# 5.0 Language Spec的$ 12.6数组初始值设定项;

  

使用数组初始值设定项的上下文决定了类型   正在初始化的数组。在数组创建表达式中,   数组类型紧接在初始化程序之前,或从中推断出来   数组初始值设定项中的表达式。在字段或变量中   声明,数组类型是字段或变量的类型   声明。在字段或变量中使用数组初始值设定项时   声明,例如:

     

int[] a = {0, 2, 4, 6, 8};

     

它只是简单的简写,用于创建等效的数组   表达

     

int[] a = new int[] {0, 2, 4, 6, 8};

正如其他人所说,这可以被称为这个初始化器的语法糖。

  

但为什么?!为什么c#的创建者需要这个"句法   糖"

Wikipedia page也说明了这一点。

  

在计算机科学中,语法糖是编程中的语法   设计为以便于阅读或表达的语言。   它使语言"更甜美"供人类使用:可以表达的东西   更清楚更简洁,或者某些人可能采用的另类风格   喜欢

那么,正确的方法是什么? 那么,这个问题是主观的。某些可能首选,某些可能首选,或者某些可能更喜欢var array = new[] { 1, 2, 3 };根据您的示例。 var也是C#3.0版本的语法糖。但是有了这个,你就不能写var array = { 1, 2, 3 };,因为它可以使解析器复杂化为Eric Lippert noted

顺便说一下,您可以在此处找到All possible C# array initialization syntaxes,在Programming.SE中找到What is the difference between “Syntax” and “Syntactic Sugar”

此外,我必须在Anthony.Sgram编写此lovely comment编程。

  

最后,它只是电力上的合成糖。