J'ai ce code C #, il jette un Le message L'argument Startindex doit être supérieur ou égal à zéro. P>
Nom du paramètre: startindex p>
blockQuote> Le tableau est vide mais pas argumentoutofrangeException code>, je me demande pourquoi? Message code> de la propriété ArgumentOpofRangeException Code> Erreur: P>
null code>, je ne m'attendais à aucune exception, juste que rien n'a été ajouté à la pile. Est-ce une exception raisonnable ou non? p> p>
3 Réponses :
L'argument à Addrange est un tableau vide, vous essayez donc de pousser des éléments zéro sur la pile. C'est donc une exception très raisonnable. P>
Edit: Mais vous avez raison, c'est un message d'exception incorrecte. Vous pouvez deviner que c'est parce que, à l'interne, la pinceur de surcharge (T [], int32, int32) jette réellement l'exception. P>
Oui, mais pourquoi est-il "si mauvais" de pousser un tableau vide? Vous n'obtiendrez pas d'exception lorsque vous ajoutez un tableau vide à une liste via Addrange ().
@TTT clairement juste une décision arbitraire faite par une personne qui n'avait pas d'utilisation réelle de poussoir dans la pratique.
Si le tableau est vide, il n'a aucun index 0, ce qui se plaint. P>
avec un index à base de zéro, 0 est le premier index, pointant vers le premier élément. Donc, il se plaint de qu'il n'y a rien dans le tableau. P>
d'une perspective de mise en œuvre forte>, c'est raisonnable si vous regardez la définition du puntrange (t [], int, int) surcharge : p>
argumentOfrangeExceptionXception: startindex em> ou compte em> est négatif. Ou startindex em> est supérieur ou égal à la longueur des éléments. P>
blockQuote>
La longueur de votre matrice est zéro. Par conséquent, il n'y a pas de valeur valide possible pour startindex em>. P>
d'une perspective de documentation forte>, ce n'est pas raisonnable, car la documentation du La surcharge de la pousseuse (t []) ne mentionne pas le
argumentoutofrangeException code>. p>
Ce n'est pas raisonnable, période.
Que se passe-t-il si vous
myINTS [0] = 0; code> avant d'appelerpushrange code>?Est-ce que cela fonctionne avec une implémentation différente de
pile code>?@Yahia: Cela lui donnerait un
indexautofrangeException code> car la matrice a une capacité de zéro.