J'ai ce programme C#, et il a le code suivant :
/*10 data for one peprson */
private int[] data = new int[10];
private void SomeMethod()
{
/*More code*/
this.data = new int[10];
/*More code*/
}
Ce programme appelle cette méthode lorsqu'un événement se produit, et chaque fois que cela se produit, ce tableau unidimensionnel obtient une "nouvelle" instance d'un tableau de taille 10, et rafraîchit le tableau. C'est un peu comme le réinitialiser.
Maintenant, on me demande d'écrire un nouveau programme qui fait la même chose, sauf qu'il y a maintenant 5 personnes. J'ai donc créé un tableau à deux dimensions comme suit
private int[,] data = new int[5, 10];
qui sera capable de stocker 10 données pour chacune des 5 personnes. Je ne sais pas comment rafraîchir/réinitialiser les données d'une seule personne dans ce tableau à deux dimensions. J'ai essayé
private void SomeMethod(int index) /*index 0 - 4 for each of the 5 people*/
{
this.data[index] = new int[10];
}
mais cela ne fonctionne manifestement pas, et je reçois une erreur disant qu'il me manque une dimension. Existe-t-il un moyen d'y parvenir ? Pour l'instant, j'utilise
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;
}
Lorsque je l'ai testé avec le code original, j'ai remarqué qu'à chaque fois qu'il obtenait une "nouvelle" instance, il assignait des 0 au tableau. Maintenant, la différence est que le code original fait référence à la nouvelle instance sans données (et donc avec 0 ?), et que le code réécrit écrase les données avec des 0.
Est-ce que les deux fonctionnent de la même manière, du point de vue des fonctions du programme ?