2008-12-04 9 views
10
referenzieren

Um Mitglied einer Klasse in XML-Kommentaren/Dokumentation kommentiert, verweisen Sie den folgenden Tag verwenden:Wie ein Indexer Mitglied einer Klasse in C#

<see cref="member"/> 

Es ist besser, erklärte here .

Wie verweisen Sie auf einen Indexer?

meine ich, ein Mitglied wie diese:

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

Vielen Dank im Voraus.

Antwort

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

Könnten Sie ein wenig weiter ausführen? Was bedeutet P vor all dem Zeug? Eigentum? – Auron

+2

P ist für Eigenschaft, M für Methode, T für Typ, schauen Sie einfach in "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ en \ mscorlib.xml" für Beispiele :) – leppie

+0

Mann, das ist eine ziemlich umfassende Beispiel! ;) Vielen Dank. – Auron

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

Im Allgemeinen, um zu erfahren, wie jedes Mitglied in Ihre Kommentare zu verweisen, für die Montage des Elements in der XML-Dokumentationsdatei finden. Es wird bei jedem Build erstellt. Mit der einzigen Ausnahme von Generika kann das Element Bezug von hier genommen werden:

</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> 
    ... 

Leider allgemeiner Definition Formate scheinen nicht zwischen der Dokumentationsdatei und den cref-Tags kompatibel zu sein. Während in der XML-Datei, Generika so aussehen:

<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> 
    ... 

Die cref Tag erwartet, dass sie in einem der folgenden Formate:

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

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

ich die gleiche Frage habe, aber mit einem generic Dictionary.Item (TKey) -Eigenschaft. Die answer by leppie

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

und die additional link by ICR (leider kann ich nicht die "mscorlib.xml" finden)

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

half mir aus.

Aber the answer by user492238
(ich weiß, ich sollte direkt seine Antwort kommentieren. Aber da ich neu bin und dies ist mein erster Beitrag, bitte gehen Sie einfach auf mich, weil ich nicht wegen meiner geringen Ruf zu kommentieren bin erlaubt.

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

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

führte nur in der Ebene, schwarzen Text, wobei nur die Sekunden-Tag < zeigt Anzeichen> als gegeben "fest codiert".

fand ich die Lösung auf der MSDN-Seite Backticks zu verwenden (`) für Generika und bekam einen vollen („Colory“) Verweise auf die Klasse und Eigentum in meinem XMLDoc:

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

wie vorgeschlagen here.

Verwandte Themen