Как ссылаться на член индексатора класса в комментариях C # - PullRequest
10 голосов
/ 04 декабря 2008

Чтобы ссылаться на члена класса в комментариях / документации XML, вы должны использовать следующий тег:

<see cref="member"/>

Лучше объяснить здесь .

Как вы ссылаетесь на индексатор ?

Я имею в виду, член, как этот:

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

Заранее спасибо.

Ответы [ 5 ]

11 голосов
/ 04 декабря 2008
<see cref="P:System.Collections.ArrayList.Item(System.Int32)" />
5 голосов
/ 04 декабря 2008
<see cref="this[int]" />
1 голос
/ 08 июня 2017
<see cref="ReadOnlyCollection{T}.this[int]" />

как предложено здесь .

1 голос
/ 26 января 2016

У меня был такой же вопрос, но со универсальным Dictionary.Item (TKey) свойством. Ответ от leppie

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

и дополнительная ссылка от ICR (к сожалению, я не могу найти "mscorlib.xml")

MSDN: обработка файла XML (Руководство по программированию в C #)

выручил меня.

Но ответ пользователя 492238
(Я знаю, я должен прямо прокомментировать его ответ. Но так как я новичок, и это мой первый пост, пожалуйста, будьте осторожны со мной, потому что мне запрещено комментировать из-за моей низкой репутации.)

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

приводил только к простому черному тексту, в котором только секунды показывают знаки тега <> как заданные «жестко».

На странице MSDN я нашел решение использовать обратные ссылки (`) для обобщенных элементов и получил полные (" colory ") ссылки на класс и свойство в моем XMLDoc:

    <see cref="P:System.Collections.Generic.Dictionary`2.Item(`0)" />
Dictionary<TKey, TValue>.this[TKey]
1 голос
/ 04 июня 2011

В общем, чтобы узнать, как ссылаться на любого участника в ваших комментариях, найдите участника в файле XML-документации для сборки. Он создается на каждой сборке. Ссылка на член может быть взята отсюда, за единственным исключением дженериков:

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

К сожалению, общие форматы определений не совместимы между файлом документации и тегами cref. В то время как в файле XML генерики выглядят так:

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

Тег cref ожидает их в одном из следующих форматов:

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

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