C#实例化数组值
本文关键字:数组 实例化 | 更新日期: 2024-10-24 18:56:26
由于某些原因,这适用于
public void TestData(ref array[,])
{
array[0, 0] = new DataType();
}
而这不起作用
public void TestData(ref array[][])
{
array[0][0] = new DataType();
}
我已经找到了一种解决需要使用[][]数组的方法,但很高兴知道为什么它看起来不一样。我是否也需要在数组[0]级别实例化?
type[,]
是二维数组,而type[][]
是一维数组的一维数组,有时称为锯齿状数组,因为数组的长度不一定相同。
你可以使用任何一种,这取决于什么是合理的。如果使用锯齿状数组,则必须实例化每个数组(外部数组和所有内部数组)。如果使用二维数组,只需实例化一次即可。
"我也需要在array[0]级别实例化吗?"是的。
因此,如果你想使用T[][]
,那么你需要进行
for (int i = 0; i < array.Length; i++)
array[i] = new T[someSize];
这就是为什么你的"锯齿状"数组不起作用的基本原因。当您声明另一个时,它实例化了水平数组和垂直数组,在这种情况下,您只得到垂直数组(列),并且必须自己实例化行。尽管两者的工作方式相当相似,但它们实际上并不能互换。