Подтвердить что ты не робот

Как сделать cref для перегрузки метода в теге <seealso> в С#?

Я вижу ссылки MSDN, такие как "CompareOrdinal Overloads". Как написать такую ​​ссылку в С#?

Я пробовал:

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

Но компилятор дает мне предупреждение о двусмысленной ссылке для метода, который имеет другие перегрузки.

(Начать вопрос: мне действительно нужно написать этот тег, чтобы ссылаться на перегрузки или он автоматически генерируется процессорами документации?)

4b9b3361

Ответ 1

Документация Xml не имеет возможности ссылаться на все перегрузки метода.

Самый популярный генератор документации для проектов С# - Sandcastle. При необходимости он автоматически создаст ссылку на страницу списка перегрузок. Следовательно, на странице списка участников имя перегруженного метода появится только один раз, щелкнув по нему, вы перейдете на страницу перегрузки для этого метода и оттуда до определенной перегрузки.

Размещение ссылки на странице списка перегрузок в документации Xml потребует глубокого знания внешнего инструмента, используемого и, вероятно, не очень хорошая идея.

Если вы действительно должны это иметь, то, возможно, одним из способов является использование привязки с определенным идентификатором. Большинство генераторов документов предоставляют некоторые тайные средства для генерируемых файлов до или после обработки и должны дать вам возможность выбрать эти якоря и предоставить для них соответствующий href.

OTH, это может быть больше проблем, чем стоит;)

Ответ 2

Чтобы настроить таргетинг на определенных участников, я считаю, что вы просто согласитесь с подписью:

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

Честно говоря, я не уверен, как создать ссылку "all overloads"; Я бы предположил, что любой разумный генератор сделал это автоматически.

Ответ 3

Использование Sandcastle просто:

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

FullyQualifiedMyMethod - это полный маршрут, необходимый для достижения перегрузки, включая пространства имен и классы, например: System.Linq.Enumerable.Sum

Однако компилятор VB выдает предупреждение о том, что атрибут не может быть разрешен, и его можно игнорировать.