我想知道语法背后的原因是什么?我的意思是这样的:
int[ , ] arrayName = new int[10,10];
如果我们有类似的东西,那会不会更简单:
int[10,10] arrayName ;
是什么原因导致软件架构师做出这样的决定?
答案 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