24

我在 MSDN 链接中看到,例如“CompareOrdinal Overloads”。如何在 C# 中编写这样的链接?

我试过:

<seealso cref="MyMethod">MyMethod Overloads</seealso>

但是编译器给了我一个警告,说它是具有其他重载的方法的模棱两可的引用。

(初学者问题:我真的需要编写这个标签来链接到重载,还是它是由文档处理器自动生成的?)

4

3 回答 3

15

要针对特定​​成员,我相信您只需匹配签名:

/// <seealso cref="Foo(int)"/>
static void Foo() { }
/// <seealso cref="Foo()"/>
/// <seealso cref="Foo(float)"/> <------ complains
static void Foo(int a) { }

老实说,我不确定如何生成“所有重载”链接;我假设任何明智的生成器都会自动执行此操作。

于 2009-01-07T09:29:56.013 回答
13

使用 Sandcastle 很简单:

<seealso cref="overloads:FullyQualifiedMyMethod">MyMethod Overloads</seealso>

fullyQualifiedMyMethod 是您需要达到重载的完整路径,包括命名空间和类,即:System.Linq.Enumerable.Sum

但是 VB 编译器会发出警告,说该属性无法解析,可以忽略。

于 2012-01-07T18:08:31.000 回答
5

XML 文档没有办法引用方法的所有重载。

最流行的 C# 项目文档生成器是 Sandcastle。如有必要,它将自动创建指向重载列表页面的链接。因此,在成员列表页面中,重载方法的名称只会出现一次,单击它将导航到该方法的重载列表页面,然后从那里转到特定的重载。

在 Xml 文档中放置到重载列表页面的链接需要对正在使用的外部工具有深入的了解,这可能不是一个好主意。

如果您真的必须拥有它,那么也许一种方法是使用具有特定格式 ID 的锚点。大多数文档生成器都提供了一些对生成的文件进行预处理或后处理的神秘方法,并且应该让您有机会挑选出这些锚点并为它们提供适当的 href。

OTH,它可能比它的价值更麻烦;)

于 2009-01-07T10:00:00.557 回答