我有一个C#程序,其中包含以下代码:
/*10 data for one peprson */
private int[] data = new int[10];
private void SomeMethod()
{
/*More code*/
this.data = new int[10];
/*More code*/
}
当事件发生时,此程序调用此方法,并且每次发生这种情况,这个一维数组都会获得一个大小为10的“新”数组实例,并刷新数组。有点像重置它。
现在,我被告知编写一个新程序,做同样的事情,只是现在有5个人。因此,我创建了一个二维数组,如下所示:
private int[,] data = new int[5, 10];
这个二维数组可以为每个人存储10条数据。现在我不知道如何刷新/重置其中一个人的数据。我尝试了
private void SomeMethod(int index) /*index 0 - 4 for each of the 5 people*/
{
this.data[index] = new int[10];
}
但是这显然行不通,我收到了一个错误提示说我缺少一个维度。有没有办法实现这个目标? 目前,我正在使用
private void SomeMethod(int index) /*index 0 - 4 for each of the 5 people*/
{
for(int i=0; i<10; i++)
this.data[index, i] = 0;
}
当我使用原始代码进行测试时,我注意到每次它得到一个“新”实例时,都会将0分配给数组。现在的区别是原始代码是引用没有数据(因此为0?)的新实例,而改写后的代码是用0进行覆盖。
在程序功能方面,这两个基本上是相同的吗?