J'utilise ce code pour obtenir une gamme de chaînes d'en-têtes utilisées dans un document MS Word 2007 (.docx): à l'aide du débogueur, je vois que Puis, je veux accéder aux cordes, mais peu importe la façon dont je le fais, je reçois l'exception suivante: P> arr comp Code> est attribué dynamiquement un tableau à chaîne avec des titres de toutes mes en-têtes dans le document (environ 40 entrées). Jusqu'ici tout va bien. P>
foreach (String str in arr)
{
Console.WriteLine(str);
}
3 Réponses :
Ceci est identique à la différence entre chaîne [] code> est un vecteur - une matrice à base de 1-D, 0.
String [*] CODE>, cependant, est un tableau régulier qui arrive à avoir une dimension em>. Fondamentalement, vous allez devoir le gérer comme
tableau code>, puis copiez les données out, ou utilisez l'API code> API plutôt que la chaîne
[] Code> API. P>
typeof (string) .MakeArrayType () code> (le vecteur) et
typeof (string) .MakeArrayType (1) code> (A 1 -d non vecteur). p>
Pensez-vous que c'est un bogue que le temps d'exécution dynamique tente d'accéder à un tableau comme s'il s'agissait d'un vecteur?
Merci beaucoup pour l'éxplication :)
@Gabe - Oui: Connectez-vous .microsoft.com / VisualStudio / Feedback / Détails / 684538 / ...
Essayez
Le problème est que vous utilisez dynamique code> dans une situation où elle n'a apparemment pas été destinée. Lorsque le runtime dynamique voit un tableau 1D, il suppose un vecteur et tente de l'indexer ou de l'énumérer comme s'il s'agissait d'un vecteur. Ceci est l'un de ces rares cas où vous avez un tableau 1D qui n'est pas un vecteur, vous devez donc le gérer comme un tableau code>:
Merci pour votre explication :) Votre première ligne me jette une erreur invalide: impossible de lancer l'objet de type 'system.string [*]' to tapez 'system.string []'.
@sw_lasse: Oups, tu as raison. Je l'ai corrigé. Ma version a fonctionné en C # 3.0 mais s'est cassé en 4.0 en raison de la bogue apparent dans l'accès dynamique d'une matrice non standard.
Je l'ai soulevée avec MS comme un bogue: Connect.Microsoft.com/visualstudio/feedback/Détails/684538/...