2010-10-06 12 views
0

Je suis intriguée par les tableaux en C#.int [] type et documentation

Je ne trouve aucune documentation sur MSDN à propos de l'objet double [] par exemple. Je trouve de la documentation sur int, array, collections, ... mais je ne trouve pas de quel type double [] est. Si je double [] a = new double [10]; a.GetType(), je trouve que le type de a est System.Double []

Je crois que le type n'est pas System.Double [], mais doit être descendant d'un objet ou d'une interface dans le système. Espace de noms Collections ou l'espace de noms System.Collections.Generic. Ma meilleure supposition est qu'un double [] est un type qui implémente l'interface System.Collections.IList, mais je ne suis pas sûr du tout. Donc, quelqu'un pourrait-il m'expliquer quel genre d'objet un tableau de doubles (donc un objet double []) est vraiment? Quelles sont ses classes de base, quelles interfaces implémente-t-elle, ... Où puis-je trouver de la documentation sur des tableaux d'objets définis comme int [], ..., object []?

Merci!

Répondre

0

Array est une classe de base pour tous les types d'arrays int, double, string quelle que soit la classe de base pour System.Array est System.Object. Le type correct est donc System.Double []. Il implémente les interfaces ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable comme indiqué sur msdn. La principale différence entre les tableaux et la collection est que les tableaux ne peuvent pas être modifiés en taille au moment de l'exécution et que les tableaux doivent contenir des objets de même type par opposition aux collections.

+0

Merci beaucoup! Pourquoi ne puis-je pas implémenter System.Array dans une classe personnalisée? Ou mieux, pourquoi ne me permettent-ils pas de faire ça? – Wice

+0

Je ne sais pas ce que vous voulez dire en mettant en œuvre le système. Tableau dans une classe personnalisée. Je présume que vous voudriez l'utiliser comme classe de base et en dériver. Ce n'est pas possible, car dans le framework il y a des classes qui ont été conçues pour ne jamais être instanciées et donc marquées comme statiques. Parmi ces classes sont Math, ThreadPool et Array.Si vous souhaitez ajouter des fonctionnalités supplémentaires à la classe Array essayez d'utiliser des méthodes d'extension. – Elena