7
votes

Où puis-je trouver des informations sur les méthodes d'obtention, de définir et d'adresses pour le système multidimensionnel.Array Instances dans .NET?


2 commentaires

@Rob: Avez-vous un exemple pour la méthode ? Et avez-vous un lien décrivant le fait que ces méthodes sont générées?


@John - Si vous cliquez sur le lien "Cet article" dans mon paragraphe d'ouverture, vous finirez par l'article à partir de laquelle la citation du deuxième paragraphe est prise.


3 Réponses :


1
votes

Je ne sais pas si cela abordera votre question très spécifique, mais un excellent texte sur le sujet (entre autres) est CLR via C # . Il devient très approfondi pour bon nombre des sujets qui vous intéressent et dépense beaucoup de temps avec le désassemblant en regardant les travaux internes de nombreux types de base .NET, y compris des tableaux. Vaut certainement la peine de vérifier.


1 commentaires

Merci de me rappeler de regarder CLR via C #, que j'ai ici. Je viens de lire à travers le chapitre 13: des tableaux mais je ne peux voir aucune mention des méthodes d'obtention, de définir et d'adresser.



6
votes

Regardez ici, en particulier Section 14.2 aux pages 63-65

http://download.microsoft.com/download/7/3/3/733ad403-90B2-4064-A81E-01035A7FE13C/MS%20Partition%20II.PDF

Mais le rabattre, et vous pouvez dire à l'IL, c'est qu'ils sont les méthodes de getter et de réglage pour traiter des tableaux aux positions indiquées.

• une méthode d'obtenir qui prend une séquence de Les arguments int32, un pour chaque dimension de la matrice et retourne un valeur dont le type est le type d'élément de la matrice. Cette méthode est utilisée pour accéder à un élément spécifique du tableau où les arguments spécifient l'index dans chaque dimension, en commençant par le premier, de l'élément à être retourné.

• une méthode définie qui prend une séquence d'arguments int32, un pour chaque dimension de la matrice, suivie d'un valeur dont le type est le type d'élément de la matrice. Le type de retour de l'ensemble est annulé. Cette méthode est utilisée pour définir un élément spécifique du tableau où Les arguments spécifient l'index dans chaque dimension, en commençant par le d'abord, de l'élément à régler et L'argument final spécifie la valeur être stocké dans l'élément cible.

• une méthode d'adresse qui prend un séquence d'arguments int32, un pour chaque dimension de la matrice et a un Type de retour qui est un pointeur géré au type d'élément de la matrice. Cette la méthode est utilisée pour renvoyer une gestion gérée pointeur sur un élément spécifique de la tableau où les arguments spécifient le indice dans chaque dimension, début avec le premier, de l'élément dont l'adresse doit être retournée.

edit: Les pages 63-65 utilisent la numérotation de la page du document. 73-75 dans le PDF actuel.


1 commentaires

Excellent! C'est exactement ce que je cherchais. Merci.



3
votes

Pour répondre à votre deuxième question, vous n'avez pas besoin de créer une instance pour obtenir un méthodyinfo pour ces méthodes. Quelque chose comme xxx

fonctionnera pour obtenir la méthode obtenir pour la chaîne [] type.


2 commentaires

Splendide! Maintenant, j'ai tout ce que je suis venu.


J'ai par la suite découvert que des soins sont nécessaires lors de la sélection entre les surcharges de MakearrayType. Sans arguments - MakearrayType () crée un type de vecteur tel que String []. Avec un argument d'un - MakearrayType (1) crée une matrice multidimensionnelle avec une dimension de type chaîne [*]. Ces types ne sont pas compatibles. Pour l'interopérabilité avec les autres langues .NET, cela signifie que lorsque le rang == 1 1, vous devrez être spécialisé l'appel à la méthode sans paramètre.