开发者

XML Comments - How do you reference a dictionary indexer properly?

开发者 https://www.devze.com 2023-03-20 06:06 出处:网络
As the name states, I have no idea开发者_StackOverflow社区 how to reference a dictionary indexer. Any help here? :)

As the name states, I have no idea开发者_StackOverflow社区 how to reference a dictionary indexer. Any help here? :)

FYI, I've tried:

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


You can use the full property syntax to reference indexers:

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 { }
        }
    }
}

You can check that the property was resolved properly by inspecting the generated XML file:

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

Notice how the first P: matches the second one.

Finally, make sure it's working with Intellisense:

XML Comments - How do you reference a dictionary indexer properly?


Update by Original Poster (myermian):

I did a little bit of digging and have discovered that the shortform of an indexer property is just "this". Ex: <see cref="this"/>


Try <see cref="P:Item(System.Int32)" /> (the name is Item, not Items)

0

精彩评论

暂无评论...
验证码 换一张
取 消