【问题标题】:Using C#'s XML comment cref attribute with params syntax使用带有参数语法的 C# 的 XML 注释 cref 属性
【发布时间】:2009-04-17 16:20:36
【问题描述】:

在 C# 中,我尝试使用 来引用包含 params 关键字的方法签名。我知道这会将参数列表转换为数组,但我什至无法弄清楚如何在 CREF 属性中引用数组。我在搜索中一无所获,我认识的人也没有任何想法。编译器在方括号上窒息。我尝试了各种不同的组合,使用花括号,使用 Array 类,但没有任何效果。有人知道吗?

【问题讨论】:

    标签: c# xml-comments params-keyword


    【解决方案1】:

    根据B.3.1 ID string format 文章,引用数组是用[方括号](带有可选的lowerbound:size 说明符)完成的,但是如果您只想引用某种类型的数组(甚至是对象数组) ,你不能只写

    <see cref="Object[]"/>

    相反,您需要指定使用 T: 前缀进行类型引用,例如

    <see cref="T:Object[]"/>

    这似乎不适用于引用方法的特定重载时,例如

    <seealso cref="String.Join(String, String[])"/>

    【讨论】:

    • 看起来前缀“M:”(<seealso cref="M:String.Join(String, String[])"/>)很重要。特别是对于重载的方法。谢谢你的好提示。
    【解决方案2】:

    ECMA 334 标准 PDF,附件 E 包含 XML 文档 cmets 的不错概述。您可以在以下网址下载标准:

    http://www.ecma-international.org/publications/standards/Ecma-334.htm

    具体来说,您需要从第 496 页开始的第 E.3.1 节。

    MSDN 上也有类似的内容(尽管 MSDN 似乎在这个主题上的导航很糟糕,因此很难找到其他部分):

    http://msdn.microsoft.com/en-us/library/aa664787(VS.71).aspx

    相当于E.3.1:

    http://msdn.microsoft.com/en-us/library/aa664807(VS.71).aspx

    您可能还会发现 Mono 的文档很有用:

    http://www.go-mono.com/docs/index.aspx?tlink=29@man%3amdoc(5)

    具体来说,“CREF FORMAT”部分涵盖了 ID 字符串约定。

    2018 年 5 月 23 日更新

    上面 ECMA-334 标准 PDF 的 URL 链接到该标准的最新版本。 2009 年,这是该标准的第 4 版。但是,截至 2017 年 12 月,第 5 版是最新的,第 4 版中的 E.3.1 部分成为第 5 版中的 D.4.2 部分。

    ECMA-334 标准的早期版本可从以下页面下载:https://www.ecma-international.org/publications/standards/Ecma-334-arch.htm

    【讨论】:

    • +1 对于研究和大量参考资料,但我仍然认为这个答案将受益于符合 OP 要求的示例。
    • 当链接停止工作时,这个答案将毫无用处。
    【解决方案3】:

    您只需省略 param 关键字并输入如下类型:

    /// <summary>
    /// <see cref="Method(string[])"/>
    /// </summary>
    public static void Main()
    {
        Method("String1", "String2");
    }
    
    public static void Method(params string[] values)
    {
        foreach (string value in values)
        {
            Console.WriteLine(value);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2019-07-29
      • 2015-01-06
      • 2011-10-30
      • 2018-05-14
      • 1970-01-01
      相关资源
      最近更新 更多