C#中的数组声明语法是否有原因?

时间:2015-08-10 04:47:57

标签: c# arrays syntax architecture software-design

我想知道语法背后的原因是什么?我的意思是这样的:

int[ , ] arrayName = new int[10,10];

如果我们有类似的东西,那会不会更简单:

int[10,10] arrayName ;

是什么原因导致软件架构师做出这样的决定?

4 个答案:

答案 0 :(得分:6)

这是因为你可以在一个范围内声明变量,并在另一个范围内初始化它(通常在构造函数中)。

这样的事情:

arrayName

答案 1 :(得分:3)

使用int[10,10] arrayName;,您将承诺数组大小。如果我这样做会怎么样?

int[10,10] arrayOne;
int[11,11] arrayTwo;

arrayOne = arrayTwo;

数组对象只是指向托管内存块的指针。了解这一点,arrayOne = arrayTwo必须在技术上合法。

因此,将其称为int[10,10]实际上是谎言。它可以以这种方式开始,但它可以随时被重新分配到不同维度的数组中。

答案 2 :(得分:2)

Rabbit.predator[1];

已经在内存中初始化变量并实例化它。此外,您可以在运行时更改数组的大小,例如

<a class="social-is social-googleplus" href="https://plus.google.com/share?url=" onclick="gplus=window.open(this.href+escape(window.location),
  '', 'menubar=no,toolbar=no,resizable=no,scrollbars=no,height=300,width=600');return false;" target="_blank"></a>

另一方面

int[ , ] arrayName = new int[10,10];

只是声明数组的变量。 arrayName = new int[20,20] 然后仍然是int[10,10] arrayName ;

答案 3 :(得分:1)

int[,] arrayName = new int[10,10];

只有左侧正在声明阵列,右侧正在初始化它。对于C#中的大多数(如果不是全部)变量都是如此。例如

string test; //declaring
test = "test"; //initialising
string test = "test"; //declare and initialise