使用 C# 的 XML 注释 cref 属性和 params 语法
-
11-09-2019 - |
题
在 C# 中,我尝试使用 <see cref="blah"/> 来引用包含 params 关键字的方法签名。我知道这会将参数列表转换为数组,但我什至不知道如何在 CREF 属性中引用数组。我在搜索中什么也没找到,而且我认识的人也不知道。编译器因方括号而窒息。我尝试了各种不同的组合,使用花括号,使用 Array 类,但没有任何效果。有人知道这个吗?
解决方案
ECMA 334 标准 PDF 附件 E 包含对 XML 文档注释的全面概述。您可以在以下位置下载该标准:
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/05/23
上面的 ECMA-334 标准 PDF 的 URL 链接到该标准的最新版本。2009年,这是该标准的第四版。然而,截至 2017 年 12 月,第 5 版已生效,第 4 版中的 E.3.1 节变成了第 5 版中的 D.4.2 节。
ECMA-334 标准的早期版本可从以下页面下载: https://www.ecma-international.org/publications/standards/Ecma-334-arch.htm
其他提示
按照 B.3.1 ID字符串格式一>制品,引用一个阵列与[方括号](带有可选lowerbound:size
说明符)做到的,但如果只是要指某种类型的阵列(或甚至对象数组),可以不只是写
<see cref="Object[]"/>
而不是你需要指定你正在做与T:
前缀类型引用,如
<see cref="T:Object[]"/>
这似乎不引用方法的一个具体的过载,例如
当应用 <seealso cref="String.Join(String, String[])"/>
您刚刚离开了帕拉姆关键字放在类型如下:
/// <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);
}
}