PB sur Tableau dynamique

fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 - 19 mai 2004 à 15:33
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 - 20 mai 2004 à 12:27
bonjour

voici un probleme sur les tableaus dynamiques

Form[] myList = new Form[0];
myList[PScript.MaxPlusUn(ref myList)] = (Form) wCaisse;

avec

public static int MaxPlusUn(ref Form[] myObject)
{
Form[] oTmp = new Form[myObject.Length + 1];
for (int i=0; i < myObject.Length; i++)
oTmp[i] = myObject[i];

myObject = (Form[]) oTmp;

return myObject.GetUpperBound(0);

}

lorsque le ligne myList[PScript.MaxPlusUn(ref myList)] = (Form) wCaisse; est executé une erreur est generé me disant
"L'index se trouve en dehors des limites du tableau."

Cependant si je transforme le programme comme suit

int myDim = PScript.MaxPlusUn(ref myList)];
myList[myDim] = (Form) wCaisse;

ici il n'y a pas d'erreur

Si quelqu'un peux m'expliquer le pourquoi de la chose afin
d'avoir un script beaucoup plus compact.

2 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 mai 2004 à 00:32
Form[] myList = new Form[0];

Si tu tapes dans un tableau à 0 case ... ca risque pas de marcher

::|The S@ib|::
MVP C#.NET
0
fdouieb Messages postés 264 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 12 juin 2013 3
20 mai 2004 à 12:27
Excuse moi me il me semble que tu fais erreur.

Ici je développe un tableau dynamique et la méthode MaxPlusUn a pour but d'incrémenter automatiquement mon tableau. C'est-à-dire qu'au moment voulue sa dimension ne vaut plus 0 mais 1 puis 2 puis ....

D'ailleurs dans le cas ou je passe par une étape supplémentaire il n'y a plus de problème.
0
Rejoignez-nous