2008-12-09 10 views
3

comme j'implémente l'ICollection-Interface dans ma classe Je veux implémenter la méthode CopyTo et je dois lancer une exception Argument si le tableau est multidimensionnel. Qu'entend-on par là? La tête de ma méthode est cettevérifier si un tableau est multidimensionnel

CopyTo public void (MyClass [] tableau, int arrayIndex)

Je pensais que ces crochets signifierait que le tableau donné est unidimensionnelle, mais quand j'importer automatiquement les commentaires de la Interface le commentaire apparaît, que je dois vérifier la multidimensionnalité. Quelqu'un peut-il me l'expliquer?

Sincères salutations

Sebastia

Répondre

3

Vous pouvez regarder Array.Rank? Cependant, T [] est unidimensionnel. Vous devez principalement vérifier le rang quand tout ce que vous savez est "Array". C'est parce que la méthode actuelle est exposée via Array, pas T [].

Donc en bref - ne vous inquiétez pas dans ce scénario ;-P

+0

La signature d'interface pour ICollection est en fait CopyTo (array T [], int arrayIndex) et les commentaires de ICollection vous dit de vérifier tableaux multidimensionnels, cela signifie que T [] n'est pas une contrainte pour les tableaux de dimension unique. Es-tu sûr de ça? – terjetyl

+0

Oui. Plus précisément, vous ne pouvez pas convertir "int [*, *]" en "int []" Essayez: 'int [,] test = {{1, 2}, {3, 4}};' ' ICollection list = new Liste () {1, 2}; ' ' list.CopyTo (test, 0); ' –

Questions connexes