Использование атрибута Cref XML-комментария C# с синтаксисом params
В C# я пытаюсь использовать
3 ответа
Стандарт ECMA 334, PDF, Приложение E, содержит хороший обзор комментариев к XML-документации. Вы можете скачать стандарт по адресу:
http://www.ecma-international.org/publications/standards/Ecma-334.htm
В частности, вам понадобится раздел E.3.1, начиная со страницы 496.
Аналогичный контент есть и в 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" охватывает условные обозначения строки идентификатора.
Обновление 2018/05/23
URL-адрес PDF-файла стандарта ECMA-334, приведенный выше, ссылается на последнюю версию стандарта. В 2009 году это было 4-е издание стандарта. Однако по состоянию на декабрь 2017 года 5-е издание является действующим, и раздел E.3.1 из 4-го издания стал разделом D.4.2 в 5-м издании.
Предыдущие версии стандарта ECMA-334 доступны для загрузки со следующей страницы: https://www.ecma-international.org/publications/standards/Ecma-334-arch.htm
Согласно статье формата строки идентификатора B.3.1, ссылка на массив выполняется с помощью [квадратных скобок] (с необязательными lowerbound:size
спецификаторы), но если вы просто хотите сослаться на массив определенного типа (или даже массив объектов), вы не можете просто написать
<see cref="Object[]"/>
вместо этого вам нужно указать, что вы делаете ссылку на тип с T:
префикс, как
<see cref="T:Object[]"/>
Похоже, это не относится к ссылкам на конкретную перегрузку метода, такую как
<seealso cref="String.Join(String, String[])"/>
Вы просто пропускаете ключевое слово 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);
}
}