2008-12-04 5 views
10

Pour faire référence à un membre d'une classe dans les commentaires XML/documentation, vous devez utiliser la balise suivante:Comment référencer un membre indexeur d'une classe en C# comments

<see cref="member"/> 

Il est mieux expliqué here .

Comment référencez-vous un indexeur ?

Je veux dire, un membre comme celui-ci:

internal object this[ int index ] { 
    ... 
} 

Merci à l'avance.

Répondre

11
<see cref="P:System.Collections.ArrayList.Item(System.Int32)" /> 
+0

Pourriez-vous élaborer un peu? Quelle est la signification de P devant tout ça? Propriété? – Auron

+2

P est pour la propriété, M pour la méthode, T pour le type, il suffit de regarder dans "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ fr \ mscorlib.xml" pour des exemples :) – leppie

+0

L'homme, c'est un peu complet Exemple! ;) Merci. – Auron

4
<see cref="this[int]" /> 
1

En général, afin de savoir, comment référencer un membre dans vos commentaires, trouver le membre dans votre fichier de documentation XML pour l'assemblage. Il est créé sur chaque build. Avec la seule exception des médicaments génériques de référence de membre peut être pris d'ici:

</member> 
<member name="P:My.Namespace.Class1.Item(System.String)"> 
    <summary> 
     retrieve a single item of the given name from this instance 
    </summary> 
    <param name="name">name of the item</param> 
    <returns>the item</returns> 
</member> 
<member name="M:My.Namespace.Class1.Function1(System.Int32[])"> 
    <summary> 
    ... 

Malheureusement, les formats de définition générique semble pas être compatible entre le fichier de documentation et les balises CREF. Alors que dans le fichier XML, les génériques ressemblent que:

<member name="M:My.Namespace.Class1.Get``1(System.String)"> 
    <summary> 
    retrieve an named item of the given type 
    </summary> 
    <typeparam name="T">the type of the item to retrieve</typeparam> 
    ... 

L'étiquette cref les attend dans l'un des formats suivants:

/// <seealso cref="M:My.Namespace.Class1.Get{T}(System.String)"/> 

/// <seealso cref="M:My.Namespace.Class1.Get&lt;T>(System.String)"/> 
1

J'ai eu la même question, mais avec un générique Propriété Dictionary.Item (TKey). Le answer by leppie

<see cref="P:System.Collections.ArrayList.Item(System.Int32)" />

et la additional link by ICR (malheureusement je ne peux pas trouver le "mscorlib.xml")

MSDN: Processing the XML File (C# Programming Guide)

m'a aidé.

Mais the answer by user492238
(je sais, je directement commenter sa réponse. Mais depuis que je suis nouvelle et voici mon premier post, s'il vous plaît allez-y doucement sur moi, parce que je ne suis pas autorisé à commenter en raison de ma faible réputation.)

<seealso cref="M:My.Namespace.Class1.Get{T}(System.String)"/>
<seealso cref="M:My.Namespace.Class1.Get&lt;T>(System.String)"/>

a donné lieu que dans la plaine, texte noir, où seulement les secondes montre balise signe <> comme donné "codées en dur".

Je trouve la solution sur la page MSDN à utiliser des apostrophes inverses (`) pour les médicaments génériques et a obtenu une références complètes ("colory") à la classe et des biens dans mon XMLDoc:

<see cref="P:System.Collections.Generic.Dictionary`2.Item(`0)" /> 
Dictionary<TKey, TValue>.this[TKey] 
1
<see cref="ReadOnlyCollection{T}.this[int]" /> 

tel que proposé here.

Questions connexes