Комментарии XML - Как правильно ссылаться на индексатор словаря? - PullRequest
6 голосов
/ 15 июля 2011

Как следует из названия, я понятия не имею, как ссылаться на индексатор словаря.Любая помощь здесь?:)

К вашему сведению, я пробовал:

<see cref="Item"/>
<see cref="Item(Int32)"/> //Highly doubted this would work.
<see cref="Item(TKey)"/>
<see cref="Item[TKey]"/>

Ответы [ 2 ]

7 голосов
/ 15 июля 2011

Вы можете использовать полный синтаксис свойства для ссылки на индексаторы:

namespace ConsoleApplication1
{
    /// <summary>
    /// See indexer <see cref="P:ConsoleApplication1.MyDictionary`2.Item(`0)"/>
    /// </summary>
    /// <typeparam name="TKey"></typeparam>
    /// <typeparam name="TValue"></typeparam>
    public class MyDictionary<TKey, TValue>
    {
        /// <summary>
        /// Indexer
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public TValue this[TKey key]
        {
            get { return default(TValue); }
            set { }
        }
    }
}

Вы можете проверить правильность разрешения свойства, проверив сгенерированный файл XML:

<doc>
    <assembly>
        <name>ConsoleApplication1</name>
    </assembly>
    <members>
        <member name="T:ConsoleApplication1.MyDictionary`2">
            <summary>
            See <see cref="P:ConsoleApplication1.MyDictionary`2.Item(`0)"/>
            </summary>
            <typeparam name="TKey"></typeparam>
            <typeparam name="TValue"></typeparam>
        </member>
        <member name="P:ConsoleApplication1.MyDictionary`2.Item(`0)">
            <summary>
            Indexer
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
    </members>
</doc>

Обратите внимание, какпервый P: совпадает со вторым.

Наконец, убедитесь, что он работает с Intellisense:

Intellisense for Indexer


Обновление от автора оригинала (myermian):

Я немного покопался и обнаружил, что короткое замыкание свойства индексатора просто " this ".Пример: <see cref="this"/>

4 голосов
/ 15 июля 2011

Попробуйте <see cref="P:Item(System.Int32)" /> (имя Элемент , а не Элемент с )

...